Cách làm phẳng danh sách lồng nhau trong Python
Một danh sách lồng nhau có thể là một danh sách các danh sách hoặc chứa một số kiểu dữ liệu. Nếu bạn đã tạo một từ một số loại dữ liệu nhỏ hơn, bạn có thể muốn làm phẳng nó để làm cho các mục dễ đọc và dễ truy cập hơn.
Tìm hiểu cách biến một danh sách lồng nhau thành một danh sách thẳng, với ba cách tiếp cận khác nhau.
Mục Lục
Cách làm phẳng danh sách Python
Có một số cách để làm thẳng một danh sách lồng nhau trong Python, tùy thuộc vào độ phức tạp của nó. Ví dụ: một danh sách chỉ chứa các danh sách sẽ dễ làm phẳng hơn một danh sách có các kiểu dữ liệu hỗn hợp.
Bạn sẽ thấy cách xử lý từng loại trong các phần sau.
Cách làm phẳng một danh sách lồng nhau với hàm Sum ()
Phương pháp này chỉ áp dụng cho một danh sách Python và nó liên quan đến việc nối các mục trong một danh sách lồng nhau như vậy. Nó không áp dụng cho danh sách các vòng lặp, từ điển, tập hợp hoặc kiểu dữ liệu hỗn hợp vì bạn không thể nối các kiểu này.
Trong khi bạn có thể sử dụng vì vòng lặp để làm phẳng một danh sách các danh sách, Tổng() hàm đơn giản và dễ đọc hơn vì nó là một lớp lót Python:
nestedList = [[1, 3, 4], [2, 4], [7, 9, 0]]flatList = sum(nestedList, [])
print(flatList)
Cách sử dụng vòng lặp for để làm phẳng danh sách lồng ghép hỗn hợp
Bạn có thể sử dụng vòng lặp Python for cho cả kiểu dữ liệu hỗn hợp và đồng nhất. Vì vậy, nó hoạt động cho dù một danh sách lồng nhau chỉ chứa danh sách, bộ giá trị, bộ, từ điển hoặc hỗn hợp của chúng:
nestedList = [[1, 3, 4], (1, 5, 6), {1, 2, 4}, {"e": 3, "o":9, "t":7}]
flatList = []for i in nestedList:
for k in i:
flatList.append(k)
print(flatList)
# Output: [1, 3, 4, 1, 5, 6, 1, 2, 4, 'e', 'o', 't']
Bạn cũng có thể đạt được điều này bằng cách hiểu danh sách:
flatList = [k for i in nestedList for k in i]print(flatList)
# Output: [1, 3, 4, 1, 5, 6, 1, 2, 4, 'e', 'o', 't']
Thao tác với danh sách Python theo ý muốn
Danh sách Python đơn giản hóa cách bạn trình bày và truy cập dữ liệu, vì nó dễ thao tác. Mặc dù bạn đã thấy cách làm phẳng danh sách Python lồng nhau, nhưng vẫn có nhiều chỉnh sửa bạn có thể áp dụng cho danh sách, tùy thuộc vào mục tiêu của bạn. Ví dụ: chuyển đổi danh sách Python sang từ điển là một nhiệm vụ phổ biến khác mà Python thực hiện dễ dàng.