Tôi đã gặp phải những gì tôi nghĩ là một hành vi lạ trong Python, và tôi muốn ai đó giải thích nó nếu có thể.Thêm vào danh sách 2D trong Python
tôi đã tạo ra một danh sách trống 2D
listy = [[]]*3
print listy
[[], [], []]
Các công trình sau đây như tôi mong đợi:
listy[1] = [1,2]
sản lượng [[], [1,2], []]
listy[1].append(3)
sản lượng [[], [1,2,3], []]
Tuy nhiên, khi tôi nối thêm vào một trong các danh sách trống, python nối thêm TẤT CẢ các danh sách con, như sau:
listy[2].append(1)
sản lượng [[1], [1,2,3], [1]]
.
Có ai có thể giải thích cho tôi tại sao hành vi này xảy ra không?
Tôi tự hỏi số lần mỗi tháng được hỏi. Chắc chắn đây là một trong những câu hỏi thường gặp nhất về Python (và không chỉ trên Stack Overflow). Từ Câu hỏi thường gặp trong tài liệu Python chính thức: [Làm cách nào để tạo danh sách đa chiều?] (Http://docs.python.org/faq/programming.html#how-do-i-create-a-multidimensional-list) –