Danh sách lồng (nested list) là danh sách trong danh sách. Python hỗ trợ xử lý danh sách lồng một cách linh hoạt và áp dụng hàm phổ biến để thao tác. Bài này trình bày dùng list comprehension tạo và dùng danh sách lồng.
Tạo ma trận
Tạo ma trận liên quan đến tạo hàng và cột. Dùng vòng lặp for lồng nhau: một list comprehension bên trong list comprehension khác.
Ví dụ
matrix = [[m for m in range(4)] for n in range(3)] print(matrix)
Kết quả:
[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]
Lọc từ danh sách lồng
Dùng list comprehension với điều kiện lọc (if) bên trong danh sách con. Ví dụ danh sách 2 chiều có một lớp danh sách con. Truy cập phần tử chọn lọc từ mỗi danh sách con bằng điều kiện.
Ví dụ
years = [['January', 'February', 'March'], ['April', 'May', 'June'], ['July', 'August', 'September'], ['October', 'November', 'December']] # Nested list comprehension với điều kiện if years = [years for sublist in years for years in sublist if len(years) <= 5] print(years)
Kết quả:
['March', 'April', 'May', 'June', 'July']
Làm phẳng danh sách con lồng nhau
Chuyển danh sách lồng thành danh sách đơn giản không còn danh sách con.
Ví dụ
nested_list = [[1], [17, 19], [21, 23, 25], [32, 35, 37, 39]] flattened_list = [value for sublist in nested_list for value in sublist] print(flattened_list)
Kết quả:
[1, 17, 19, 21, 23, 25, 32, 35, 37, 39]