Module 4a — ทบทวน (Review)

Collection Data Types: List — แบบฝึกทบทวน

ทบทวน Module 4a 📝

  • Multiple Choice — เลือกคำตอบที่ถูก แล้วกดถัดไปเพื่อดูเฉลย
  • เติมคำในช่องว่าง — ลองพิมพ์ใน Live Code แล้วรัน

. . .

Note

ครอบคลุม: สร้าง/เข้าถึง List · index/slice/len() · เพิ่ม/ลบ · ค้นหา · เรียงลำดับ · สถิติ ทบทวนเนื้อหาเต็มได้ที่ Module 4a 👈

Multiple Choice 🔘

เลือกคำตอบที่ถูกต้อง — เฉลยจะปรากฏเมื่อกดถัดไป

คำถาม #1

ข้อใดสร้าง list ว่าง?

A. ()    B. []    C. {}    D. set()

Tip

ตอบ: B[] คือ list ว่าง ( () คือ tuple ว่าง, {} คือ dict ว่าง )

คำถาม #2

List เก็บข้อมูล ต่างชนิด ในลิสต์เดียวกันได้หรือไม่?

A. ได้    B. ไม่ได้ ต้องชนิดเดียวกันทั้งหมด

Tip

ตอบ: A — เช่น [1, "hello", 3.4, True] เก็บคละชนิดได้

คำถาม #3

data = [10, 20, 30, 40]data[0] คือค่าใด?

A. 10    B. 20    C. 40    D. error

Tip

ตอบ: A — index เริ่มที่ 0 เสมอ → data[0] = ตัวแรก = 10

คำถาม #4

data = [10, 20, 30, 40]data[-1] คือค่าใด?

A. 10    B. 40    C. -1    D. error

Tip

ตอบ: B — index ติดลบ นับจากท้าย → data[-1] = ตัวสุดท้าย = 40

คำถาม #5

len([5, 6, 7]) ให้ค่าใด?

A. 2    B. 3    C. 4

Tip

ตอบ: Blen() นับจำนวนสมาชิก = 3 (index มีค่า 0 ถึง len()-1)

คำถาม #6

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

คำถาม #7: ชวนคิด

a = [10, 20, 30]a[1.0] (ใช้ float เป็น index) จะเกิดอะไร?

A. ได้ 20    B. TypeError    C. ได้ 10

Important

ตอบ: B — index ต้องเป็น int เท่านั้น → ใช้ float เกิด TypeError (ใช้ a[2//2] แทน)

คำถาม #8

3 in [1, 2, 3] ให้ผลใด?

A. True    B. False    C. 2

Tip

ตอบ: A — operator in ตรวจสมาชิก ได้ผลเป็น bool

คำถาม #9: ชวนคิด

result = nums.sort()result มีค่าใด?

A. list ที่เรียงแล้ว    B. None

Important

ตอบ: B (None).sort() เรียง in-place (แก้ list เดิม) แล้วคืน None — ถ้าอยากได้ list ใหม่ใช้ sorted(nums)

คำถาม #10: ชวนคิด

a = [1, 2]a.append([3, 4]) ทำให้ a เป็นอย่างไร?

A. [1, 2, 3, 4]    B. [1, 2, [3, 4]]

Important

ตอบ: B.append() เพิ่ม [3,4] เป็น 1 สมาชิก (list ซ้อน) — ถ้าอยากได้ [1,2,3,4] ใช้ .extend([3,4])

คำถาม #11

data = [10, 20, 30]data.pop() (ไม่ระบุ index) ลบตัวใด?

A. ตัวแรก (10)    B. ตัวสุดท้าย (30)    C. ทั้งหมด

Tip

ตอบ: B.pop() ไม่ระบุ index → ลบ (และคืนค่า) ตัวสุดท้าย

คำถาม #12

['a', 'b', 'c'].remove('b') ทำให้ list เป็นอย่างไร?

A. ['a', 'c']    B. ['b']    C. ['a', 'b']

Tip

ตอบ: A.remove(x) ลบ ด้วยค่า (ตัวแรกที่เจอ) ส่วน .pop(i) ลบด้วย index

คำถาม #13

[1, 2] + [3, 4] ให้ผลใด?

A. [4, 6]    B. [1, 2, 3, 4]    C. [[1,2],[3,4]]

Tip

ตอบ: B+ กับ list คือ concatenation (นำมาต่อกัน)

คำถาม #14

[0] * 3 ให้ผลใด?

A. [0, 3]    B. [0, 0, 0]    C. 0

Tip

ตอบ: B* กับ list คือ repetition (ทำซ้ำ) — นิยมใช้สร้าง list ค่าเริ่มต้น

คำถาม #15

[10, 20, 30].index(30) ให้ค่าใด?

A. 2    B. 3    C. 30

Tip

ตอบ: A.index(x) คืน ตำแหน่ง (index) ของ x30 อยู่ index 2

คำถาม #16: ชวนคิด

a = [3, 1, 2] แล้ว b = sorted(a) — หลังจากนั้น a เป็นอย่างไร?

A. [1, 2, 3]    B. [3, 1, 2] (ไม่เปลี่ยน)

Important

ตอบ: Bsorted() คืน list ใหม่ ไม่แก้ของเดิม (ต่างจาก .sort() ที่แก้ in-place)

เติมคำในช่องว่าง ✏️

เติมโค้ดในช่อง ____ แล้วกด Run

เติมคำ #17

สร้าง list lst เก็บ 1, 2, 3, 40, 50, 60 แล้ว แสดงจำนวนสมาชิก

lst = [1, 2, 3, 40, 50, 60]
print(lst)
print(len(lst))
[1, 2, 3, 40, 50, 60]
6

เติมคำ #18

เพิ่ม 11 เข้า list แล้ว เรียงลำดับ จากน้อยไปมาก

data = [16, 2, 77, 40]
data.append(11)
data.sort()
print(data)
[2, 11, 16, 40, 77]

เติมคำ #19

ใช้ slice ดึงข้อมูล ทุกตำแหน่งเว้น 1 (index 0, 2, 4, …)

a = [0, 1, 2, 3, 4, 5]
print(a[::2])
[0, 2, 4]

เติมคำ #20

คำนวณ ค่าเฉลี่ย ของคะแนนใน list

scores = [10, 20, 30, 40]
average = sum(scores) / len(scores)
print(average)
25.0

เติมคำ #21

หา ค่ามากสุด และ ค่าน้อยสุด ใน list

data = [16, 2, 77, 40, 11]
print(max(data))
print(min(data))
77
2

เติมคำ #22: ชวนคิด

รับข้อมูลหลายค่าเป็น List ด้วย .split()

raw = '10 20 30 40 50'   # input()
data = raw.split()
print(data)
print(len(data))
['10', '20', '30', '40', '50']
5

ได้ List ของ string — ถ้าต้องการตัวเลขต้องแปลงชนิดอีกที

เติมคำ #23

ใช้ .insert() แทรกค่า 99 ที่ ตำแหน่ง index 1

data = [10, 20, 30]
data.insert(1, 99)
print(data)
[10, 99, 20, 30]

เติมคำ #24

ลบค่า 20 ด้วยค่า แล้วลบตัวที่ index 0 ด้วย index

data = [10, 20, 30, 40]
data.remove(20)    # ลบด้วยค่า
data.pop(0)        # ลบด้วย index
print(data)
[30, 40]

เติมคำ #25

เรียงลำดับ จากมากไปน้อย โดยใช้ sorted()

nums = [3, 1, 4, 1, 5]
print(sorted(nums, reverse=True))
[5, 4, 3, 1, 1]

เติมคำ #26: ชวนคิด

นับว่าเลข 2 ปรากฏใน list กี่ครั้ง ด้วย .count()

data = [1, 2, 2, 3, 2]
print(data.count(2))
3

จบการทบทวน 🎉

ทบทวนเนื้อหาเต็มได้ที่ Module 4a · ไปต่อ Module 4b