可能重複:
「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]]
可能有人請解釋一下其中的訣竅是什麼?
我試圖尋找類似的問題,但實際上可能會制定問題,所以問。 –
而你沒有看到幾乎與你所問的問題完全相同的問題? –