2010-02-27 8 views
3

dict1 = { 0 : 0, 1 : 1, 2 : { 0: 0, 1 : 1}}과 같은 사전을 가지고 있습니다 (값으로 사전도 있음). 나는이 값을 수정 확인 목적에 맞게 보관하고 싶다. 이제이 사전 컨텐트를 dict2 = dict1.copy()이라는 다른 사전에 복사하고 있습니다. 이제 dict2의 값을 { 0 : -1, 1 : -2, 2: { 0 : -1, i : -2}}과 같이 변경하고 있습니다. 이제 문제는 내 dict1의 사전 값이 { 0 : 0, 1 : 1, 2:{ 0 : -1, 1 : -2}}으로 변경된다는 것입니다. 여기서 이것을 쉽게 볼 수 있습니다 dict1의 키 2 값 또한 dict2의 키 2 값으로 변경됩니다.사전 내의 중첩 사전 (중첩 된 사전)

어떻게의 키 = 2 개 값 '이이 dict1에 영향을 넣으면 안됩니다의 키 2 값'때문에 변화 dict2 경우 dict1에서 dict2을 복사해야 ?

+0

복제 할 수 없습니다. 어떤 버전을 사용하고 있으며 dict 2의 값을 어떻게 변경하고 있습니까? –

+1

@ J.T. 'd = {1 : {2 : 3}}; e = d.copy(); e [1] [2] = 4; d' – kennytm

+0

@KennyTM 고맙습니다. "d [1]이 e [1] 인 예제는 내가 무슨 일이 일어 났는지 정확하게 이해할 수있게 도와주었습니다. –

답변

11

깊은 복사를 수행하려면 copy.deepcopy을 사용하십시오.

+0

네, 정답을 많이 얻었습니다. –