Tạo danh sách của bạn trước vòng lặp của bạn, nếu không nó sẽ được tạo ở mỗi vòng lặp.
>>> list1 = []
>>> for i in range[10] :
... list1.append[ range[i,10] ]
...
>>> list1
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9], [3, 4, 5, 6, 7, 8, 9], [4, 5, 6, 7, 8, 9], [5, 6, 7, 8, 9], [6, 7, 8, 9], [7, 8, 9], [8, 9], [9]]
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à, Đầu ra: 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, Đầu ra: Ở đâ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ụ, Đầu ra: 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à.# Creating a list with same values
list_of_num = [5]* 10
print[list_of_num]
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
# Create a list with 4 references of same sub list
list_of_num = [[]] * 4
print['List of lists:']
print[list_of_num]
[[], [], [], []]
for elem in list_of_num:
print[id[elem]]
200792200
200792200
200792200
200792200
# Insert 11 into the 3rd sub list list_of_num[2].append[11]
Bây giờ hãy kiểm tra nội dung của danh sách chính,
print['Modified list of lists:'] print[list_of_num]
Đầu ra:
Modified list of lists: [[11], [11], [11], [11]]
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
Cách chính xác để tạo và khởi tạo danh sách các danh sách trong Python
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
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à.
# Creating a list with same values list_of_num = [5]* 10 print[list_of_num]0
Đầu ra:
# Creating a list with same values list_of_num = [5]* 10 print[list_of_num]1
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,
# Creating a list with same values list_of_num = [5]* 10 print[list_of_num]2
Đầu ra:
# Creating a list with same values list_of_num = [5]* 10 print[list_of_num]3
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,
# Creating a list with same values list_of_num = [5]* 10 print[list_of_num]4
Đầu ra:
# Creating a list with same values list_of_num = [5]* 10 print[list_of_num]5
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.
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à.
# Creating a list with same values list_of_num = [5]* 10 print[list_of_num]6
Đầu ra:
# Creating a list with same values list_of_num = [5]* 10 print[list_of_num]1
Nó tạo ra một danh sách với 5 danh sách phụ. Hãy để xác nhận nếu mỗi danh sách phụ là một đối tượng khác nhau hay không,
# Creating a list with same values list_of_num = [5]* 10 print[list_of_num]8
Đầu ra:
# Creating a list with same values list_of_num = [5]* 10 print[list_of_num]9
Nó chứng minh rằng tất cả các danh sách phụ có danh tính khác nhau.
Sử dụng danh sách hiểu & lặp lại [] để tạo danh sách các danh sách
Trong mô -đun python itertools cung cấp một hàm lặp lại [],
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]0
Nó trả về một trình lặp lại lần lượt trả về đối tượng đã cho n lần. Chúng ta có thể sử dụng nó cho phép lặp cơ bản từ 0 đến 4 và trong mỗi lần lặp, chúng ta sẽ nối một danh sách phụ vào danh sách chính, tức là.
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.
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]1
Đầu ra:
# Creating a list with same values list_of_num = [5]* 10 print[list_of_num]1
Nó đã trả lại một danh sách với 5 danh sách phụ. Chúng tôi cũng có thể xác nhận rằng tất cả các danh sách phụ là các đối tượng khác nhau,
# Creating a list with same values list_of_num = [5]* 10 print[list_of_num]2
Đầu ra:
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]4
Nó chứng minh rằng tất cả các danh sách phụ có danh tính khác nhau. Mặc dù vậy, đây là một trong những phương pháp ít được sử dụng nhất để tạo danh sách danh sách, nhưng vẫn tốt để biết những điều khác nhau bởi vì một khi bạn biết các trường hợp sử dụng API và của chúng Áp dụng nó cho một số kịch bản khác.
Sử dụng Numpy để tạo danh sách các danh sách
Mô -đun Numpy trong Python cung cấp một hàm trống [] để tạo ra một mảng vô âm trống của hình dạng đã cho, tức là.
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]5
Nó trả lại một mảng numpy mới của hình dạng nhất định.
Vì vậy, bây giờ để tạo một danh sách các danh sách, chúng tôi sẽ tạo một mảng 2D sử dụng hàm clan [] và sau đó sẽ chuyển đổi nó thành một danh sách các danh sách bằng hàm numpy.tolist []. Ví dụ,
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]6
Đầu ra:
# Creating a list with same values list_of_num = [5]* 10 print[list_of_num]1
Vì vậy, chúng tôi tạo ra một danh sách có 5 người phụ. Bây giờ, hãy để xác nhận rằng tất cả các danh sách phụ là các đối tượng khác nhau,
# Creating a list with same values list_of_num = [5]* 10 print[list_of_num]8
Đầu ra:
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]9
Nó chứng minh rằng tất cả các danh sách phụ là các đối tượng khác nhau.
Ví dụ hoàn chỉnh như sau,
# 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:
# Create a list with 4 references of same sub list list_of_num = [[]] * 4 print['List of lists:'] print[list_of_num]1