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

Chuyển đổi danh sách lồng nhau thành danh sách phẳng trong Python

Danh sách lồng nhau (nested list) là list có phần tử cũng là list. Cần chuyển thành list phẳng (flattened) để xử lý từng phần tử. Các phần tử bên trong cũng có thể lồng nhau nhiều lớp. Giải quyết bằng đệ quy: kiểm tra nếu phần tử là list thì gọi lại hàm, ngược lại thêm vào list kết quả.

Ví dụ

listA = [[43, [0]], 12, 19, [13, [8, 8]], 21]
print('Given nested list: \n', listA)
# Flat List
res = []
# Hàm đệ quy
def flatlist(l):
    for x in l:
        if type(x) == list:
            flatlist(x)
        else:
            res.append(x)

flatlist(listA)
print('Flattened List created: \n', res)

Kết quả

Chạy đoạn mã trên cho kết quả sau:

Given nested list: [[43, [0]], 12, 19, [13, [8, 8]], 21] Flattened List created: [43, 0, 12, 19, 13, 8, 8, 21]