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

Nối list của list (flatten) trong Python

Nhiều cách flatten list of lists:

Cách 1: Nested loop

L1 = [[1,2], [3,4,5], [6,7,8,9]]
flat = []
for sublist in L1:
    for item in sublist:
        flat.append(item)
print(flat)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]

Cách 2: Generator function

def flatten(lst):
    for sublist in lst:
        for item in sublist:
            yield item

L1 = [[1,2,3], [4,5], [6,7,8,9]]
flat = list(flatten(L1))
print(flat)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]

Cách 3: itertools.chain (compact, hiệu quả)

import itertools

L1 = [[1,2,3], [4,5], [6,7,8,9]]
flat = list(itertools.chain.from_iterable(L1))
print(flat)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]

Cách 4: List comprehension (Pythonic)

flat = [item for sublist in L1 for item in sublist]

Tất cả cho kết quả: [1, 2, 3, 4, 5, 6, 7, 8, 9]