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

จะแผ่รายการตื้น ๆ ใน Python ได้อย่างไร?


วิธีแก้ปัญหาที่ง่ายและตรงไปตรงมาคือการผนวกรายการจากรายการย่อยในรายการแบบเรียบโดยใช้สองลูปที่ซ้อนกัน

lst = [[10, 20, 30, 40], [50, 60, 70, 80], [90, 100, 110, 120]]
flatlist = []
for sublist in lst:
   for item in sublist:
      flatlist.append(item)
print (flatlist)

โซลูชันที่มีขนาดกะทัดรัดและ Pythonic มากขึ้นคือการใช้ฟังก์ชัน chain() จากโมดูล itertools

>>> lst  =[[10, 20, 30, 40], [50, 60, 70, 80], [90, 100, 110, 120]]
>>> import itertools
>>> flatlist = list(itertools.chain(*lst))
>>> flatlist
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120]