0
誰かが「Cvalue」を「fred」に追加するのを防ぐ方法を教えてもらえますか?
私はpython 2.7を使用していますが、python 3は同じ動作をします。Python dictに追加すると別の変数に影響があります
#!/usr/bin/env python
hdict = {52951331: [5], 23396132: [4], 82982473: [19, 37], 126988879: [20] }
Cdict = {23396132: [19, 37], 82982473: [4], 126988879: [5], 52951331: [20]}
result = {}
for key, value in hdict.iteritems():
if key in Cdict:
result[key] = value
for Cvalue in Cdict[key]:
fred = value
print 'fred1: ', fred
result[key].append(Cvalue)
print 'fred2: ', fred
'fred = value'は' value'のコピーを作成しません。 'result [key] = value'と同じです。 「Pythonの名前と値についての事実と神話」(http://nedbatchelder.com/text/names.html)を参照してください。 – user2357112
これはdictsについてではなく、リストについてです。ディクテーションは物事を難読化するだけです。 'some_value'と同じ問題があります。 – Evert