我剛認識真是奇怪的Python的東西:爲什麼我不能改變只有一個元素嵌套列表在Python
>>> out=[[0]*3]*3
>>> out
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>> out[0][1]
0
>>> out[0][1]=9
>>> out
[[0, 9, 0], [0, 9, 0], [0, 9, 0]]
好,很明顯,我要的是:
[[0, 9, 0], [0, 0, 0], [0, 0, 0]]
並不奇怪?我對Python並不是很熟悉,但Python總是以其直觀的行爲讓我印象深刻。但是它是如何出現的呢?
......我怎樣才能得到我需要的東西?
謝謝!
瓦
你說得對一個事情 - 這不是很直觀。我不認爲他們用Python 3修正了它。 –
@MarkRansom你爲什麼認爲這是需要**固定的**?如果你真的想要這樣的行爲,如果它發生了變化,那該怎麼辦呢? – jamylak
對於任何人想知道如果人們在代碼中實際使用這種行爲,請參閱['zip()'](http://docs.python.org/library/functions.html#zip)上的文檔,它有一個示例使用'zip(* [iter(s)] * n)'將序列聚類成n長度的組。 –