Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách làm phẳng (flatten) một shallow list trong Python?

Giải pháp đơn giản: thêm các mục từ sublist vào flat list bằ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)

Giải pháp compact và Pythonic hơn: dùng hàm chain() từ module 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]