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]