誰もがなぜこれが起こっているのか説明できますか?Python配列の異常な動作?
ケース1:
>>> a = [[0]] *3
>>> print a
[[0], [0], [0]]
>>> a[1].append(0)
>>> print a
[[0, 0], [0, 0], [0, 0]]
ケース2:なぜこれが
>>> a = [[0],[0],[0]]
>>> print a
[[0], [0], [0]]
>>> a[1].append(0)
>>> print a
[[0], [0, 0], [0]]
が起こっていますか?私はケース1の場合の配列の振る舞いがケース2のようになることを期待していますが、それは何らかの理由でではありません。
浅いコピー:あなたは可変タイプを持っているときは、リストの内包表記を使用して、この問題を回避するためにのみ不変タイプ
とスターのフォームを使用する必要がありますか? – Arpan
これらはPythonの 'list'sであり、配列ではありません。 Pythonの文脈では、 'array'は通常、NumPy配列を意味すると解釈されます(ただし、標準ライブラリ' array'モジュールもあります)。 –