ภาพรวม
บทความสอน 3 วิธีดึงสมาชิกตัวแรก (index 0) จากทุก sublist ในลิสต์ซ้อน
ตัวอย่างข้อมูล
Alist = [['Mon', 1], ['Tue', 'Wed', 'Fri'], [12, 3, 7]]
ผลลัพธ์: ['Mon', 'Tue', 12]
วิธี 1: For Loop
Alist = [['Mon', 1], ['Tue', 'Wed', 'Fri'], [12, 3, 7]]
for item in Alist:
print(item[0])
# Output: Mon, Tue, 12
วิธี 2: ใช้ zip และ * (Unpacking)
Alist = [['Mon', 1], ['Tue', 'Wed', 'Fri'], [12, 3, 7]] result = list(list(zip(*Alist))[0]) print(result) # ['Mon', 'Tue', 12]
อธิบาย: zip(*Alist) จับกลุ่ม index 0 ของทุก sublist, index 1 ของทุก sublist, ... เราเอากลุ่มแรก [0]
วิธี 3: ใช้ operator.itemgetter
from operator import itemgetter Alist = [['Mon', 1], ['Tue', 'Wed', 'Fri'], [12, 3, 7]] result = list(map(itemgetter(0), Alist)) print(result) # ['Mon', 'Tue', 12]
สรุปเปรียบเทียบ
| วิธี | ความเข้าใจ | ประสิทธิภาพ | เหมาะกับ |
|---|---|---|---|
| For loop | สูง | ปานกลาง | เริ่มต้นเรียนรู้ |
| zip + * | ปานกลาง | ดี | Functional style |
| itemgetter | ปานกลาง | ดีมาก | ข้อมูลใหญ่, production |