は私がappend()
関数の奇妙な行動だと思うものを私が遭遇した、と私は、次の単純化されたコードでそれを複製することができた:Pythonの動作が奇妙に追加されていますか?
plugh1 = []
plugh2 = []
n = 0
while n <= 4:
plugh1.append(n)
plugh2.append(plugh1)
n = n+1
print plugh1
print plugh2
plugh1 = [1, 2, 3, 4]
plugh2 = [[1], [1, 2], [1, 2, 3, ], [1, 2, 3, 4]]
実際の結果は:ループの実行として
plugh1 = [1, 2, 3, 4]
plugh2 = [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]]
、すべての配列要素がで置換されている各時間plugh1の値。
同様の質問がありますが、解決策は関数のネストとこれらの呼び出しの外での変数の定義に関連しているようです。これはずっと簡単だと思います。私は何が欠けていますか?
'plugh2.append(plugh1 [:])' – sberry
を実行するだけでもよいでしょう。 newbを助けてくれてありがとう。乾杯 –