Tôi muốn khởi tạo danh sách đa chiều. Về cơ bản, tôi muốn có một lưới 10x10 - một danh sách 10 danh sách chứa 10 mục.Python: khởi tạo danh sách đa chiều
Mỗi giá trị danh sách nên được khởi tạo đến số nguyên 0.
Các cách rõ ràng để làm điều này trong một lớp lót: myList = [[0]*10]*10
sẽ không làm việc vì nó tạo ra một danh sách các tài liệu tham khảo 10 đến một danh sách, vì vậy thay đổi một mục trong bất kỳ hàng nào thay đổi nó trong tất cả các hàng.
Tài liệu tôi đã xem các cuộc thảo luận về việc sử dụng [:]
để sao chép danh sách, nhưng điều đó vẫn không hoạt động khi sử dụng hệ số: myList = [0]*10; myList = myList[:]*10
có tác dụng tương tự như myList = [[0]*10]*10
.
Ngắn tạo vòng lặp myList.append()
s, có cách nhanh chóng hiệu quả để khởi tạo danh sách theo cách này không?
Tôi nghĩ ý tưởng '[:]' cũng có thể hoạt động, ví dụ: '[x [:] cho x trong [[0] * 10] * 10]'. – DSM