Collection Data Types: List — แบบฝึกทบทวน
. . .
Note
ครอบคลุม: สร้าง/เข้าถึง List · index/slice/len() · เพิ่ม/ลบ · ค้นหา · เรียงลำดับ · สถิติ ทบทวนเนื้อหาเต็มได้ที่ Module 4a 👈
เลือกคำตอบที่ถูกต้อง — เฉลยจะปรากฏเมื่อกดถัดไป
ข้อใดสร้าง list ว่าง?
A. ()
B. []
C. {}
D. set()
Tip
ตอบ: B — [] คือ list ว่าง ( () คือ tuple ว่าง, {} คือ dict ว่าง )
List เก็บข้อมูล ต่างชนิด ในลิสต์เดียวกันได้หรือไม่?
A. ได้
B. ไม่ได้ ต้องชนิดเดียวกันทั้งหมด
C. ได้ แต่จำกัดไม่เกิน 2 ชนิด
Tip
ตอบ: A — เช่น [1, "hello", 3.4, True] เก็บคละชนิดได้
data = [10, 20, 30, 40] — data[0] คือค่าใด?
A. 10
B. 20
C. 40
D. error
Tip
ตอบ: A — index เริ่มที่ 0 เสมอ → data[0] = ตัวแรก = 10
data = [10, 20, 30, 40] — data[-1] คือค่าใด?
A. 10
B. 40
C. -1
D. error
Tip
ตอบ: B — index ติดลบ นับจากท้าย → data[-1] = ตัวสุดท้าย = 40
len([5, 6, 7]) ให้ค่าใด?
A. 2
B. 3
C. 4
Tip
ตอบ: B — len() นับจำนวนสมาชิก = 3 (index มีค่า 0 ถึง len()-1)
a = [0, 1, 2, 3, 4] — a[1:4] ได้ผลใด?
A. [1, 2, 3, 4]
B. [1, 2, 3]
C. [0, 1, 2, 3]
Tip
ตอบ: B — slice [start:stop] ไม่รวม ตัวที่ตำแหน่ง stop → ได้ index 1,2,3
a = [10, 20, 30] — a[1.0] (ใช้ float เป็น index) จะเกิดอะไร?
A. ได้ 20
B. TypeError
C. ได้ 10
Important
ตอบ: B — index ต้องเป็น int เท่านั้น → ใช้ float เกิด TypeError (ใช้ a[2//2] แทน)
3 in [1, 2, 3] ให้ผลใด?
A. True
B. False
C. 2
Tip
ตอบ: A — operator in ตรวจสมาชิก ได้ผลเป็น bool
result = nums.sort() — result มีค่าใด?
A. list ที่เรียงแล้ว
B. None
C. list ต้นฉบับ (ไม่เรียง)
Important
ตอบ: B (None) — .sort() เรียง in-place (แก้ list เดิม) แล้วคืน None — ถ้าอยากได้ list ใหม่ใช้ sorted(nums)
a = [1, 2] — a.append([3, 4]) ทำให้ a เป็นอย่างไร?
A. [1, 2, 3, 4]
B. [1, 2, [3, 4]]
C. error — .append() รับได้แค่ตัวเลขเท่านั้น
Important
ตอบ: B — .append() เพิ่ม [3,4] เป็น 1 สมาชิก (list ซ้อน) — ถ้าอยากได้ [1,2,3,4] ใช้ .extend([3,4])
data = [10, 20, 30] — data.pop() (ไม่ระบุ index) ลบตัวใด?
A. ตัวแรก (10)
B. ตัวสุดท้าย (30)
C. ทั้งหมด
Tip
ตอบ: B — .pop() ไม่ระบุ index → ลบ (และคืนค่า) ตัวสุดท้าย
['a', 'b', 'c'].remove('b') ทำให้ list เป็นอย่างไร?
A. ['a', 'c']
B. ['b']
C. ['a', 'b']
Tip
ตอบ: A — .remove(x) ลบ ด้วยค่า (ตัวแรกที่เจอ) ส่วน .pop(i) ลบด้วย index
[1, 2] + [3, 4] ให้ผลใด?
A. [4, 6]
B. [1, 2, 3, 4]
C. [[1,2],[3,4]]
Tip
ตอบ: B — + กับ list คือ concatenation (นำมาต่อกัน)
[0] * 3 ให้ผลใด?
A. [0, 3]
B. [0, 0, 0]
C. 0
Tip
ตอบ: B — * กับ list คือ repetition (ทำซ้ำ) — นิยมใช้สร้าง list ค่าเริ่มต้น
[10, 20, 30].index(30) ให้ค่าใด?
A. 2
B. 3
C. 30
Tip
ตอบ: A — .index(x) คืน ตำแหน่ง (index) ของ x → 30 อยู่ index 2
a = [3, 1, 2] แล้ว b = sorted(a) — หลังจากนั้น a เป็นอย่างไร?
A. [1, 2, 3]
B. [3, 1, 2] (ไม่เปลี่ยน)
C. error — ต้องใช้ a.sort() แทน sorted()
Important
ตอบ: B — sorted() คืน list ใหม่ ไม่แก้ของเดิม (ต่างจาก .sort() ที่แก้ in-place)
เติมโค้ดในช่อง ____ แล้วกด Run
สร้าง list lst เก็บ 1, 2, 3, 40, 50, 60 แล้ว แสดงจำนวนสมาชิก
เพิ่ม 11 เข้า list แล้ว เรียงลำดับ จากน้อยไปมาก
ใช้ slice ดึงข้อมูล ทุกตำแหน่งเว้น 1 (index 0, 2, 4, …)
คำนวณ ค่าเฉลี่ย ของคะแนนใน list
หา ค่ามากสุด และ ค่าน้อยสุด ใน list
รับข้อมูลหลายค่าเป็น List ด้วย .split()
ใช้ .insert() แทรกค่า 99 ที่ ตำแหน่ง index 1
ลบค่า 20 ด้วยค่า แล้วลบตัวที่ index 0 ด้วย index
เรียงลำดับ จากมากไปน้อย โดยใช้ sorted()
นับว่าเลข 2 ปรากฏใน list กี่ครั้ง ด้วย .count()
โค้ดจะพิมพ์อะไร? — ทายก่อน แล้วกดถัดไปดูเฉลย
Tip
ผลลัพธ์: [9, 1, 2, 3, 4] — append(4) ต่อท้าย → insert(0, 9) แทรกที่หัว
Important
ผลลัพธ์: [1, 2, 3] [0, 2, 4] — [1:4] = index 1–3 (ไม่รวม 4) · [::2] = ทุกตำแหน่งเว้น 1
ไล่ค่า list ทีละคำสั่ง
เติมค่า a หลังแต่ละบรรทัด
| บรรทัด | คำสั่ง | a |
|---|---|---|
| 1 | a = [3, 1, 2] |
? |
| 2 | a.append(5) |
? |
| 3 | a.sort() |
? |
| 4 | a.pop() |
? |
Tip
| บรรทัด | a |
|---|---|
| 1 | [3, 1, 2] |
| 2 | [3, 1, 2, 5] |
| 3 | [1, 2, 3, 5] |
| 4 | [1, 2, 3] |
.pop() ไม่ระบุ index → ลบตัวสุดท้าย (5)
โค้ดผิดตรงไหน — ทำไม
ได้ None — ผิดตรงไหน?
Important
ผิด: .sort() เรียง in-place แล้วคืน None → ไปเก็บทับ nums เป็น None แก้: nums.sort() เฉย ๆ (แล้ว print(nums)) หรือใช้ nums = sorted(nums)
จัดการข้อมูลการวัดด้วย List
หาค่าเฉลี่ยอุณหภูมิรายวัน (°C)
Tip
ผลลัพธ์: 6.0 2.8 — max/min หาค่ามาก/น้อยสุดของชุดข้อมูลการวัด
เติม slice ให้ดึง 3 ค่าล่าสุด ของข้อมูลเซนเซอร์
trap ที่คนพลาดบ่อย — List เป็น “reference”
a เป็นอะไร? (ระวัง!)
Important
ผลลัพธ์: [99, 2, 3] — b = a ทำให้ทั้งคู่ชี้ list เดียวกัน → แก้ b กระทบ a ถ้าต้องการสำเนาแยก: b = a.copy() หรือ b = a[:]
ทบทวนเนื้อหาเต็มได้ที่ Module 4a · ไปต่อ Module 4b
🏠 259201 — Module 4a ทบทวน | ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเชียงใหม่