Я столкнулся с тем, что, по моему мнению, является странным поведением на Python, и я хотел бы, чтобы кто-то объяснил это, если это возможно.
Я создал пустой 2D-список
listy = [[]]*3
print listy
[[], [], []]
Следующее работает так, как я ожидал:
listy[1] = [1,2]
дает [[], [1,2], []]
listy[1].append(3)
дает [[], [1,2,3], []]
Однако, когда я присоединяюсь к одному из пустых списков, python присоединяется ко всем подспискам следующим образом:
listy[2].append(1)
дает [[1], [1,2,3], [1]]
.
Может ли кто-нибудь объяснить мне, почему это происходит?