Computer >> 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 bằng Python

Danh sách lồng nhau là danh sách có các phần tử là chính danh sách. Nếu chúng tôi có một vùng chứa dữ liệu python là một danh sách lồng nhau, đôi khi chúng tôi có thể cần phải chuyển đổi nó thành một danh sách phẳng để mỗi phần tử có thể được xử lý thêm.

Ngay cả các phần tử bên trong cũng có thể được lồng vào nhau. Và có thể có nhiều lớp làm tổ. Vì vậy, chúng ta sẽ tiếp cận vấn đề này với đệ quy. Chúng tôi sẽ tiếp tục kiểm tra xem phần tử có được lồng vào nhau hay không và sau đó tiếp tục áp dụng hàm lặp đi lặp lại cho đến khi phần tử không còn là một danh sách. Khi phát hiện thấy phần tử đó không phải là một danh sách, chúng tôi sẽ nối phần tử đó vào một danh sách mới sẽ chứa tất cả các phần tử không lồng nhau của danh sách.

Ví dụ

listA = [[43, [0]],12, 19, [13,[8, 8]], 21 ]
print('Given nested list: \n', listA)
# Flat List
res = []
# function
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)

Đầu ra

Chạy đoạn mã trên cho chúng ta 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]