Tôi đang gặp sự cố trong chương trình của mình và tôi không chắc mình đang làm gì sai. Để bắt đầu, tôi đã tạo danh sách các danh sách trống. Ví dụ:python gắn giá trị vào danh sách con
>>> Lists = [[]]*12
mang đến cho:
>>> Lists
[[], [], [], [], [], [], [], [], [], [], [], []]
Tuy nhiên, khi cố gắng thêm một giá trị cho một sublist cá nhân nó bổ sung thêm giá trị cho tất cả các danh sách con. Ví dụ:
>>> Lists[2].append(1)
Cung cấp:
>>> Lists
[[1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
Có cách nào để phụ thêm vào chỉ là một danh sách phụ chứa duy nhất để kết quả sẽ trông giống như:
>>> Lists
[[], [], [1], [], [], [], [], [], [], [], [], []]
Bạn có thể muốn nhìn vào [này] (http://www.laurentluce.com/posts/python-list-implementation/) để hiểu tại sao nó lại gắn cho tất cả các danh sách con . Nếu bạn nhìn vào hình thứ hai, bạn có thể nghĩ đến 12 phần tử trong danh sách của bạn khi trỏ đến cùng một đối tượng '[]'. Bây giờ khi bạn chắp thêm '1' vào' Lists [2] ', nó sẽ gắn thêm vào đối tượng danh sách chia sẻ. Do đó, tất cả các phần tử trong 'Lists' xuất hiện để có thêm' 1'. – Nik