Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ดึงสมาชิกตัวแรกของทุก Sublist ใน Python

ภาพรวม

บทความสอน 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