Tạo một danh sách các danh sách trong Python là một chút khó khăn. Trong bài viết này, chúng tôi sẽ thảo luận về 4 cách khác nhau để tạo và khởi tạo danh sách danh sách.
Hãy bắt đầu từ cách cơ bản, nhanh nhất để tạo và khởi tạo một danh sách bình thường với cùng các giá trị trong Python là,
# Creating a list with same values list_of_num = [5]* 10 print[list_of_num]
Đầu ra:
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
Nó tạo ra một danh sách kích thước 10 với cùng một phần tử, tức là về cơ bản, nó sao chép đối tượng bên trong [], 10 lần. Hãy để sử dụng cùng một logic để tạo và khởi tạo danh sách các danh sách,
# Create a list with 4 references of same sub list list_of_num = [[]] * 4 print['List of lists:'] print[list_of_num]
Đầu ra:
[[], [], [], []]
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
for elem in list_of_num: print[id[elem]]
Đầu ra:
200792200 200792200 200792200 200792200
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
Nó tạo ra một danh sách kích thước 10 với cùng một phần tử, tức là về cơ bản, nó sao chép đối tượng bên trong [], 10 lần. Hãy để sử dụng cùng một logic để tạo và khởi tạo danh sách các danh sách,
Ở đây chúng tôi đã cung cấp một danh sách trống [] bên trong [] và nhân nó với 4. Nó đã tạo ra 4 tài liệu tham khảo khác nhau của [] và chèn chúng vào một danh sách mới. Có, đây không phải là 4 danh sách trống trong danh sách chính, nhưng đây không phải là các đối tượng danh sách khác nhau thay vì đây chỉ là các tài liệu tham khảo của danh sách đầu tiên. Hãy để xác nhận điều này bằng cách lặp qua danh sách và in ID của mỗi đối tượng danh sách phụ,
# Insert 11 into the 3rd sub list list_of_num[2].append[11]
Tất cả các mục trong danh sách có cùng một ID, tức là chúng trỏ đến cùng một đối tượng danh sách.
print['Modified list of lists:'] print[list_of_num]
Đầu ra:
Modified list of lists: [[11], [11], [11], [11]]
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
Nó tạo ra một danh sách kích thước 10 với cùng một phần tử, tức là về cơ bản, nó sao chép đối tượng bên trong [], 10 lần. Hãy để sử dụng cùng một logic để tạo và khởi tạo danh sách các danh sách,
Ở đây chúng tôi đã cung cấp một danh sách trống [] bên trong [] và nhân nó với 4. Nó đã tạo ra 4 tài liệu tham khảo khác nhau của [] và chèn chúng vào một danh sách mới. Có, đây không phải là 4 danh sách trống trong danh sách chính, nhưng đây không phải là các đối tượng danh sách khác nhau thay vì đây chỉ là các tài liệu tham khảo của danh sách đầu tiên. Hãy để xác nhận điều này bằng cách lặp qua danh sách và in ID của mỗi đối tượng danh sách phụ,
Tất cả các mục trong danh sách có cùng một ID, tức là chúng trỏ đến cùng một đối tượng danh sách.
Tại sao nó lại quan trọng?
Hãy để chèn một phần tử trong danh sách phụ thứ 3 của danh sách chính, tức là.
# Create an empty list list_of_lists = [] # Iterate over a sequence of numbers from 0 to 4 for i in range[5]: # In each iteration, add an empty list to the main list list_of_lists.append[[]] print['List of lists:'] print[list_of_lists]
Đầu ra:
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]0
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]1
Đầu ra:
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]2
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
Nó tạo ra một danh sách kích thước 10 với cùng một phần tử, tức là về cơ bản, nó sao chép đối tượng bên trong [], 10 lần. Hãy để sử dụng cùng một logic để tạo và khởi tạo danh sách các danh sách,
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]3
Đầu ra:
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]4
Ở đây chúng tôi đã cung cấp một danh sách trống [] bên trong [] và nhân nó với 4. Nó đã tạo ra 4 tài liệu tham khảo khác nhau của [] và chèn chúng vào một danh sách mới. Có, đây không phải là 4 danh sách trống trong danh sách chính, nhưng đây không phải là các đối tượng danh sách khác nhau thay vì đây chỉ là các tài liệu tham khảo của danh sách đầu tiên. Hãy để xác nhận điều này bằng cách lặp qua danh sách và in ID của mỗi đối tượng danh sách phụ,
Tất cả các mục trong danh sách có cùng một ID, tức là chúng trỏ đến cùng một đối tượng danh sách.
Tại sao nó lại quan trọng?
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]5
Đầu ra:
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]0
Hãy để chèn một phần tử trong danh sách phụ thứ 3 của danh sách chính, tức là.
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]7
Đầu ra:
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]8
Bây giờ hãy kiểm tra nội dung của danh sách chính,
Phần tử được chèn trong tất cả các danh sách phụ, bởi vì đây không phải là danh sách khác nhau. Chúng tôi đã không mong đợi điều này ở vị trí đầu tiên, chúng tôi chỉ muốn chèn phần tử trong danh sách phụ thứ 3. Vì vậy, nó chứng minh rằng đây là một cách sai để tạo và khởi tạo một danh sách. Hãy cùng nhìn vào cách chính xác,
Quảng cáo
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]9
Cách chính xác để tạo và khởi tạo danh sách các danh sách trong Python
We can use it for basic iteration from 0 to 4 and in each iteration we will append a sublist to main list i.e.
# Create a list with 4 references of same sub list list_of_num = [[]] * 4 print['List of lists:'] print[list_of_num]0
Đầu ra:
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]0
Hãy cùng xem 4 cách khác nhau nhưng chính xác để tạo và khởi tạo danh sách các danh sách
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]1
Đầu ra:
# Create a list with 4 references of same sub list list_of_num = [[]] * 4 print['List of lists:'] print[list_of_num]3
Sử dụng cho vòng lặp để tạo và khởi tạo danh sách danh sách
Giả sử chúng tôi muốn tạo một danh sách, trong đó chứa 5 danh sách phụ khác nhau. Để làm điều đó, trước tiên chúng tôi sẽ tạo một danh sách trống mới, sau đó chúng tôi sẽ lặp lại từ các số 0 đến 4 bằng cách sử dụng vòng lặp và trong mỗi lần lặp, chúng tôi sẽ nối một danh sách trống vào danh sách mới, tức là.
Bây giờ, hãy để xác nhận rằng nếu tất cả các danh sách phụ trong danh sách chính thực sự là danh sách khác nhau,
# Create a list with 4 references of same sub list list_of_num = [[]] * 4 print['List of lists:'] print[list_of_num]4
Tất cả các danh sách phụ có ID khác nhau, xác nhận rằng đây là các đối tượng khác nhau.
Hãy để chèn phần tử trong danh sách phụ thứ 3,
# Create a list with 4 references of same sub list list_of_num = [[]] * 4 print['List of lists:'] print[list_of_num]5
Đầu ra:
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]0
Phần tử chỉ được thêm vào trong danh sách phụ thứ 3, tất cả các danh sách phụ khác không bị ảnh hưởng. Vì vậy, nó cũng xác nhận rằng tất cả các danh sách phụ không phải là tài liệu tham khảo của cùng một danh sách, thay vào đó chúng là các đối tượng hoàn toàn khác nhau.
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]7
Đầu ra:
# Create a list with 4 references of same sub list list_of_num = [[]] * 4 print['List of lists:'] print[list_of_num]8
Sử dụng danh sách hiểu & phạm vi [] để tạo danh sách các danh sách
Sử dụng hàm Python Rang Range [], chúng ta có thể tạo một chuỗi các số từ 0 đến N-1 và cho mỗi phần tử trong chuỗi tạo và nối một danh sách phụ vào danh sách chính bằng cách sử dụng danh sách hiểu biết, tức là.
# Create a list with 4 references of same sub list list_of_num = [[]] * 4 print['List of lists:'] print[list_of_num]9
Đầu ra:
[[], [], [], []]0