0
나는 다음과 같은 변수가 있습니다 파이썬 사전 값 업데이트
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
그래서 나는이
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}}
이 나는
를 얻을 수를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
귀하의 딥 카피는 한 번만 수행되며이 복사본은 세 개의 키 모두에 할당됩니다. fromkeys 대신에 dict comprehension을 시도하십시오 –