同僚の Python 2.7 スクリプトを手伝っているときに、奇妙なことに気付きました。彼は辞書の値としてリストを含む辞書を持っています。彼は、辞書の値を新しい変数に割り当ててから、リストを編集していました。私が得た奇妙な部分は、新しい変数のリストの変更も辞書に反映されていたことです。シェルで簡単な例を繰り返し、以下に投稿しました。私も同じことを試しましたが、辞書の値として文字列を使用しましたが、効果はありませんでした。ここに欠けているものはありますか、それともある種のバグですか? ありがとう。
>>> dict1 = {}
>>> dict1['foo'] = [1,2,3]
>>> print dict1
{'foo': [1, 2, 3]}
>>> bar = dict1['foo']
>>> bar.append(4)
>>> print dict1
{'foo': [1, 2, 3, 4]}
上記の例では、4 がbarに追加され、'foo' の値が [1,2,3] のままであると予想していました。