Tôi đã gặp phải một số sự cố khi sử dụng danh sách lồng nhau bằng Python trong mã được hiển thị.Chỉ mục danh sách lồng nhau
Về cơ bản, tôi có danh sách 2D chứa tất cả 0 giá trị, tôi muốn cập nhật giá trị danh sách trong vòng lặp.
Tuy nhiên, Python không tạo ra kết quả tôi muốn. Có điều gì mà tôi hiểu sai về chỉ số danh sách range()
và Python không?
some_list = 4 * [(4 * [0])]
for i in range(3):
for j in range(3):
some_list[i+1][j+1] = 1
for i in range(4):
print(some_list[i])
Kết quả mong đợi của tôi là:
[0, 0, 0, 0]
[0, 1, 1, 1]
[0, 1, 1, 1]
[0, 1, 1, 1]
Nhưng kết quả thực tế từ Python là:
[0, 1, 1, 1]
[0, 1, 1, 1]
[0, 1, 1, 1]
[0, 1, 1, 1]
gì đang xảy ra ở đây?
Đây là liên kết đến hướng dẫn về Python lập trình thành ngữ. Một số của nó là lỗi thời, nhưng một phần về các biến và tên vẫn tiếp tục có liên quan: http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#other-languages-have-variables – pcurry