0
私は、次の変数があります。だから私はこのPythonの辞書値更新
dict_s['x']['a']= np.arange(10)
ようdict_sの値を更新するには
In[22]: dict_s
Out[22]:
{'x': {'a': None, 'b': None, 'c': None},
'y': {'a': None, 'b': None, 'c': None},
'z': {'a': None, 'b': None, 'c': None}}
を持って
list_m = ["a","b","c"]
list_s = ['x','y','z']
dict_m = dict.fromkeys(list_m[:])
dict_s = dict.fromkeys(list_s[:],copy.deepcopy(dict_m)) # empty dict of dicts
を私は
取得In[27]: dict_s
Out[27]:
{'x': {'a': array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), 'b': None, 'c': None},
'y': {'a': array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), 'b': None, 'c': None},
'z': {'a': array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), 'b': None, 'c': None}}
代わりに私が何を望むかの
は/予想:
In[27]: dict_s
Out[27]:
{'x': {'a': array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), 'b': None, 'c': None},
'y': {'a': None, 'b': None, 'c': None},
'z': {'a': None, 'b': None, 'c': None}}
これは深い/浅いコピー問題や何か他のものであるならば、私は正確に理解していません。
あなたは、このコードで何をしようとしている理由を説明してください。 – Soviut
私は後の結果を望んでいますが、前者はありません – dayum
ディープコピーは一度だけ実行され、このコピーは3つのキーすべてに割り当てられます。 fromkeysの代わりにdictの理解を試してください –