可能重复:
“Least Astonishment” in Python: The Mutable Default Argument
Python list confusionPython列表混乱
我与Python中列表的列表有点摸不着头脑。我有这两个片段:
li1 = [['a'], ['a'], ['a']]
print li1
for i in range(0, len(li1)):
li1[i] += [i]
print li1
li2 = [['a']] * 3
print li2
for i in range(0, len(li2)):
li2[i] += [i]
print li2
创作LI1和LI2后是相同的,但是当我添加的元素,他们的行为不同:
[['a'], ['a'], ['a']]
[['a', 0], ['a', 1], ['a', 2]]
[['a'], ['a'], ['a']]
[['a', 0, 1, 2], ['a', 0, 1, 2], ['a', 0, 1, 2]]
可能有人请解释一下其中的诀窍是什么?
我试图寻找类似的问题,但实际上可能会制定问题,所以问。 –
而你没有看到几乎与你所问的问题完全相同的问题? –