【发布时间】:2012-04-21 14:26:11
【问题描述】:
可能重复:
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
【问题讨论】:
-
这已经被问了数千次了。让我找一个重复的:)
-
谢谢。这个问题很难找到合适的标题,所以我很难找到重复的。感谢您指出:)
-
@rahmu:是的,我知道,这很不幸,但这肯定不是你的错 :) 玩得开心。
-
是的,之前有人指出,除非您知道它是什么,否则您无法搜索此问题。
-
@rahmu:Symbolhound 非常擅长查找小代码 sn-ps:Search results for
[[]] *on Stackoverflow 第三个结果已经是重复的了。