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

รับองค์ประกอบแรกของแต่ละรายการย่อยใน Python


รายการในหลามยังสามารถมีรายการอยู่ภายในเป็นองค์ประกอบ รายการที่ซ้อนกันเหล่านี้เรียกว่ารายการย่อย ในบทความนี้ เราจะแก้ปัญหาความท้าทายในการดึงเฉพาะองค์ประกอบแรกของแต่ละรายการย่อยในรายการที่กำหนด

ใช้สำหรับวนซ้ำ

เป็นวิธีที่ง่ายมากที่เราวนซ้ำรายการย่อยที่ดึงรายการที่ดัชนี 0 ในนั้น ใช้ for loop เพื่อจุดประสงค์นี้ดังที่แสดงด้านล่าง

ตัวอย่าง

Alist = [['Mon', 1], ['Tue', 'Wed', "Fri"], [12,3,7]]
print("Given List:\n",Alist)
print("First Items from sublists:\n")
for item in Alist:
   print((item[0]))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Given List:
[['Mon', 1], ['Tue', 'Wed', 'Fri'], [12, 3, 7]]
First Items from sublists:
Mon
Tue
12

การใช้ zip และ *

* ช่วยให้เราสามารถแกะรายการย่อยและให้การเข้าถึงองค์ประกอบแต่ละรายการของรายการย่อย ในกรณีนี้ เราจะใช้ * และเข้าถึงองค์ประกอบที่ดัชนี 0 จากแต่ละองค์ประกอบ จากนั้นเราก็ซิปผลลัพธ์เพื่อรับรายการองค์ประกอบแรกจากรายการย่อย

ตัวอย่าง

Alist = [['Mon', 1], ['Tue', 'Wed', "Fri"], [12,3,7]]
print("Given List:\n",Alist)
print("\n First Items from sublists:\n")
print(list(list(zip(*Alist))[0]))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Given List:
[['Mon', 1], ['Tue', 'Wed', 'Fri'], [12, 3, 7]]
First Items from sublists:
['Mon', 'Tue', 12]

การใช้ itemgetter

itemgetter(i) สร้าง callable ที่รับวัตถุ iterable เช่น dictionary,list, tuple เป็นต้น เป็นอินพุต และดึงองค์ประกอบ i-th ออกมา เราจึงสามารถใช้วิธีนี้ในการรับรายการแรกของรายการโดยใช้ฟังก์ชันแผนที่ดังนี้

ตัวอย่าง

from operator import itemgetter

Alist = [['Mon', 1], ['Tue', 'Wed', "Fri"], [12,3,7]]
print("Given List:\n",Alist)
print("\n First Items from sublists:\n")
print(list(map(itemgetter(0), Alist)))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Given List:
[['Mon', 1], ['Tue', 'Wed', 'Fri'], [12, 3, 7]]
First Items from sublists:
['Mon', 'Tue', 12]