可能重复:
Unexpected feature in a Python list of lists
Python list confusion名单
考虑下面的代码:
a = [[]] * 3
a[1].append("foo")
我期望的a
值成为:
[[], ["foo"], []]
代替的a
每一个元素被更新:
[["foo"], ["foo"], ["foo"]]
能有人请解释为什么在列表中的每个元素得到了更新,而不是仅仅定义的元素(a[1]
)的?我的逻辑中是否有根本错误?
对于什么是值得我运行Python2.7
这已被问过千次..让我找到一个重复:) – 2012-04-21 14:28:33
谢谢。很难找到这个问题的正确标题,所以我无法轻松找到重复。谢谢你指出:) – rahmu 2012-04-21 14:30:35
@rahmu:是的,我知道,这是不幸的,但它肯定不是你的错:)玩得开心。 – 2012-04-21 14:30:57