Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để làm phẳng một danh sách nông trong Python?

Một giải pháp đơn giản và dễ hiểu là nối các mục từ danh sách con trong một danh sách phẳng bằng cách sử dụng hai vòng lặp for lồng nhau.

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)

Một giải pháp nhỏ gọn và Pythonic hơn là sử dụng hàm chain () từ mô-đun 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]