Danh sách là các cấu trúc dữ liệu hữu ích thường được sử dụng trong lập trình Python. Danh sách lồng nhau là một danh sách các danh sách hoặc bất kỳ danh sách nào có danh sách khác là một yếu tố (một người đăng ký phụ). Chúng có thể hữu ích nếu bạn muốn tạo một ma trận hoặc cần lưu trữ một trình phụ thuộc cùng với các loại dữ liệu khác. are useful data structures commonly used in Python programming. A nested list is a list of lists, or any list that has another list as an element (a sublist). They can be helpful if you want to create a matrix or need to store a sublist along with other data types.
Đây là cách bạn sẽ tạo danh sách ví dụ ở trên:
# creating list
nestedList = [1, 2, ['a', 1], 3]
# indexing list: the sublist has now been accessed
subList = nestedList[2]
# access the first element inside the inner list:
element = nestedList[2][0]
print("List inside the nested list: ", subList)
print("First element of the sublist: ", element)
Tạo một ma trận
Tạo một ma trận là một trong những ứng dụng hữu ích nhất của danh sách lồng nhau. Điều này được thực hiện bằng cách tạo một danh sách lồng nhau chỉ có danh sách khác có độ dài bằng nhau như các yếu tố.
Số lượng các phần tử trong danh sách lồng nhau bằng số lượng hàng của ma trận.
Độ dài của các danh sách bên trong danh sách lồng nhau bằng số lượng cột.
Do đó, mỗi phần tử của danh sách lồng nhau (ma trận) sẽ có hai chỉ số: hàng và cột.
# create matrix of size 4 x 3
matrix = [[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[9, 10, 11]]
rows = len(matrix) # no of rows is no of sublists i.e. len of list
cols = len(matrix[0]) # no of cols is len of sublist
# printing matrix
print("matrix: ")
for i in range(0, rows):
print(matrix[i])
# accessing the element on row 2 and column 1 i.e. 3
print("element on row 2 and column 1: ", matrix[1][0])
# accessing the element on row 3 and column 2 i.e. 7
print("element on row 3 and column 2: ", matrix[2][1])
THẺ LIÊN QUAN
danh sách
danh sách lồng nhau
cộng đồng
Trong hướng dẫn này, chúng tôi sẽ hiểu cách thực hiện một danh sách lồng nhau trong Python. Trước đó, chúng tôi hãy hiểu danh sách trong Python. Liệt kê trong Python là một loại dữ liệu có thể lưu trữ nhiều mục của các loại dữ liệu khác nhau vào một biến duy nhất.
Một trong những lợi thế đáng kể của việc sử dụng danh sách so với bất kỳ loại dữ liệu nào khác như Tuples hoặc String là danh sách đó là có thể thay đổi. Do đó, một mục bên trong danh sách có thể dễ dàng thay đổi hoặc thay thế bằng bất kỳ yếu tố nào khác. Sau đây là một ví dụ về một danh sách đơn giản trong Python lưu trữ danh sách các sản phẩm được hiển thị bởi bất kỳ trang web thương mại điện tử nào.
products=['books','toys','kitchenware'] print(f"Displaying products offered by our website: {products}") print(f"Acessing 2nd product of list: {products[1]}")Output: Displaying products offered by our website: ['books', 'toys', 'kitchenware'] Acessing 2nd product of list: toysĐôi khi, việc thêm nhiều người phụ hơn trong cùng một danh sách với mỗi danh sách lưu trữ các mục của các loại dữ liệu khác nhau. Trong ví dụ của chúng tôi, giả sử chúng tôi muốn lưu trữ sản phẩm cùng với số lượng đơn vị cho từng loại sản phẩm. Ngoài ra, đối với mỗi mục như sách, chúng tôi muốn tiếp tục liên kết các danh mục cho sản phẩm đó. Trong kịch bản này sử dụng danh sách thông thường sẽ không phải là một tùy chọn hợp lệ và do đó chúng tôi chuyển sang danh sách lồng nhau.
Danh sách lồng nhau trong Python
Một danh sách lồng nhau trong Python cho phép một danh sách chứa nhiều người phụ trong chính nó. Mỗi người phụ có thể có các mục của các loại dữ liệu khác nhau. Nó có thể được tạo ra bằng cách đặt những người phụ và các mục được phân tách bằng dấu phẩy với nhau. Sau đây là một ví dụ về một danh sách lồng nhau trong Python thỏa mãn các tiêu chí nêu trên.
ecommerce=[['books',['comedy','horror'],'toys','kitchenware'],[200,100,350]] print(f"Displaying products offered by our website: {products}")Output: Displaying products offered by our website: [['books', ['comedy', 'horror'], 'toys', 'kitchenware'], [200, 100, 350]]Truy cập các yếu tố của danh sách lồng nhau
Giả sử chúng tôi muốn truy cập danh mục hài từ danh mục phụ danh mục của danh sách thương mại điện tử. Nó tương tự như lập chỉ mục trong danh sách mà chỉ mục bắt đầu bằng 0 và kết thúc với độ dài của Danh sách-1. Biểu đồ sau đây giải thích toàn bộ cấu trúc của việc lập chỉ mục trong ví dụ của chúng tôi về danh sách thương mại điện tử.
Mã sau đây giải thích cách truy cập danh mục kinh dị từ danh mục phụ. Ở đây chúng tôi đang truy cập danh sách đầu tiên. Trong danh sách đầu tiên, chúng tôi muốn mục thứ hai một lần nữa là một người phụ. Trong danh sách phụ đó, chúng tôi muốn mục thứ hai.
ecommerce=[['books',['comedy','horror'],'toys','kitchenware'],[200,100,350]] book_category=ecommerce[0][1][1] print(f"Displaying second book category: {book_category}")Output: Displaying second book category: horrorHiển thị các mục của danh sách lồng nhau
Giả sử chúng tôi muốn hiển thị tất cả các mục từ danh mục phụ danh mục của danh sách thương mại điện tử. Để lặp lại các yếu tố, chúng ta có thể sử dụng cho hoặc trong khi vòng lặp.
ecommerce=[['books',['comedy','horror'],'toys','clothes','kitchenware'],[200,100,350]] index=0 for category in ecommerce[0][1]: print(f"Category {index}: {category}") index=index+1Output: Category 0: comedy Category 1: horror
Chèn một mục vào danh sách lồng nhau
Để thêm các mục vào danh sách lồng nhau, chúng ta có thể sử dụng hàm nối hoặc chèn chức năng. Hàm append () lấy phần tử hoặc danh sách làm tham số và nối nó vào cuối danh sách. Hàm chèn () có hai tham số- vị trí mà mục sẽ được chèn và phần tử hoặc danh sách sẽ được chèn. Mã sau đây giải thích việc chèn các phần tử vào danh sách bằng cách sử dụng chức năng chèn và chức năng chèn.
# create matrix of size 4 x 3
matrix = [[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[9, 10, 11]]
rows = len(matrix) # no of rows is no of sublists i.e. len of list
cols = len(matrix[0]) # no of cols is len of sublist
# printing matrix
print("matrix: ")
for i in range(0, rows):
print(matrix[i])
# accessing the element on row 2 and column 1 i.e. 3
print("element on row 2 and column 1: ", matrix[1][0])
# accessing the element on row 3 and column 2 i.e. 7
print("element on row 3 and column 2: ", matrix[2][1])
0# create matrix of size 4 x 3
matrix = [[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[9, 10, 11]]
rows = len(matrix) # no of rows is no of sublists i.e. len of list
cols = len(matrix[0]) # no of cols is len of sublist
# printing matrix
print("matrix: ")
for i in range(0, rows):
print(matrix[i])
# accessing the element on row 2 and column 1 i.e. 3
print("element on row 2 and column 1: ", matrix[1][0])
# accessing the element on row 3 and column 2 i.e. 7
print("element on row 3 and column 2: ", matrix[2][1])
1Trong mã trên, chúng tôi đã sử dụng chức năng chèn để thêm một loại sản phẩm có tên ‘Quần áo tại chỉ số thứ 3 của danh sách thương mại điện tử [0]. Ở đây thương mại điện tử [0] sẽ đưa ra danh sách tại vị trí chỉ mục 0 của danh sách thương mại điện tử.
Xóa các mục khỏi danh sách lồng nhau
Để xóa các mục hoặc danh sách khỏi danh sách lồng nhau trong Python, chúng ta có thể sử dụng hàm pop () hoặc từ khóa del. Từ khóa DEL được sử dụng để xóa các đối tượng trong Python có thể bao gồm bất cứ điều gì từ các biến hoặc danh sách. Hàm pop không có tham số và chỉ cần xóa phần tử cuối cùng của danh sách lồng nhau. Trong mã được nêu dưới đây, chúng tôi đã sử dụng từ khóa DEL, mục thứ 3 xóa khỏi danh sách phụ đầu tiên của danh sách thương mại điện tử. Tương tự, chúng tôi đã sử dụng chức năng POP để xóa danh sách phụ giảm giá.
# create matrix of size 4 x 3
matrix = [[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[9, 10, 11]]
rows = len(matrix) # no of rows is no of sublists i.e. len of list
cols = len(matrix[0]) # no of cols is len of sublist
# printing matrix
print("matrix: ")
for i in range(0, rows):
print(matrix[i])
# accessing the element on row 2 and column 1 i.e. 3
print("element on row 2 and column 1: ", matrix[1][0])
# accessing the element on row 3 and column 2 i.e. 7
print("element on row 3 and column 2: ", matrix[2][1])
2# create matrix of size 4 x 3
matrix = [[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[9, 10, 11]]
rows = len(matrix) # no of rows is no of sublists i.e. len of list
cols = len(matrix[0]) # no of cols is len of sublist
# printing matrix
print("matrix: ")
for i in range(0, rows):
print(matrix[i])
# accessing the element on row 2 and column 1 i.e. 3
print("element on row 2 and column 1: ", matrix[1][0])
# accessing the element on row 3 and column 2 i.e. 7
print("element on row 3 and column 2: ", matrix[2][1])
3Danh sách lồng phẳng trong Python
Làm phẳng một danh sách lồng nhau đang chuyển đổi nó thành một danh sách đồng phục duy nhất. Các phương pháp khác nhau có thể được sử dụng để làm phẳng một danh sách lồng nhau trong Python. Trong mã được đề cập dưới đây, tôi đã sử dụng chiến lược hiểu danh sách để làm phẳng danh sách lồng nhau. Vòng lặp cho mỗi mục của từng mục và trả về mục dưới dạng đầu ra trong một danh sách duy nhất.
# create matrix of size 4 x 3
matrix = [[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[9, 10, 11]]
rows = len(matrix) # no of rows is no of sublists i.e. len of list
cols = len(matrix[0]) # no of cols is len of sublist
# printing matrix
print("matrix: ")
for i in range(0, rows):
print(matrix[i])
# accessing the element on row 2 and column 1 i.e. 3
print("element on row 2 and column 1: ", matrix[1][0])
# accessing the element on row 3 and column 2 i.e. 7
print("element on row 3 and column 2: ", matrix[2][1])
4# create matrix of size 4 x 3
matrix = [[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[9, 10, 11]]
rows = len(matrix) # no of rows is no of sublists i.e. len of list
cols = len(matrix[0]) # no of cols is len of sublist
# printing matrix
print("matrix: ")
for i in range(0, rows):
print(matrix[i])
# accessing the element on row 2 and column 1 i.e. 3
print("element on row 2 and column 1: ", matrix[1][0])
# accessing the element on row 3 and column 2 i.e. 7
print("element on row 3 and column 2: ", matrix[2][1])
5Đây là kết thúc của hướng dẫn về cách thực hiện một danh sách lồng nhau trong Python.Bạn có thể đọc thêm về từ điển lồng nhau trong Python bằng cách sử dụng liên kết sau: Từ điển lồng nhau trong Python