【发布时间】:2013-06-18 00:30:47
【问题描述】:
我的程序遇到了问题,我不确定自己做错了什么。首先,我创建了一个空列表。例如:
>>> Lists = [[]]*12
给出:
>>> Lists
[[], [], [], [], [], [], [], [], [], [], [], []]
但是,当尝试将值附加到单个子列表时,它会将值添加到所有子列表。例如:
>>> Lists[2].append(1)
给予:
>>> Lists
[[1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
有没有办法只附加到一个子列表,这样结果看起来像:
>>> Lists
[[], [], [1], [], [], [], [], [], [], [], [], []]
【问题讨论】:
-
您可能想查看this 以了解它为何附加到所有子列表。如果你看第二个图,你可以认为列表中的 12 个元素指向同一个对象
[]。现在,当您将1附加到您的Lists[2]时,它会附加到共享列表对象。因此,Lists中的所有元素似乎都附加了1。