2012-02-29 4 views
1

정수 키가있는 dict이 있고 각 키의 값은 정수 키와 정수로 구성된 맵입니다.중첩 된 사전을 복사합니다.

예 :

x = { 
    3 : {0:set([1,2,5]), 1:set([3]), 2:set([7,8])}, 
    4 : {0:set([1,2]), 1:set([4]), 2:set([7])}, 
    } 

나는 다음과 같은 작업을 수행하는 함수를 작성하는 것을 시도하고있다 : (말 2) x의 각 값에 존재하는 키 (k)를 감안할 때

을, 그것을 유사한 구조와 다음과 같은 특성을 가진 새로운 딕셔너리를 반환해야합니다 :

  • 키 (T) : k
  • 아래에있는 모든 값의 조합에의 요소 515,
  • 값 : 동일한 내부 키와 딕셔너리하지만 소정의 내부 키 (k')의 값은, 상기 예에서 T in x[k]

이 오래 딕셔너리에 k'와 관련된 모든 집합의 합집합 인수 만약 k=2는 그것을 반환해야한다 : 나는 현재이 일을하고

y = { 
    7 : {0:set([1,2,5]), 1:set([3,4]), 2:set([7])}, 
    8 : {0:set([1,2,5]), 1:set([3]), 2:set([8])}, 
    } 

을 이전 DICT에 k에서 가능한 모든 값을 통해 반복하고 새로운 하나를 구성하여. 이 작업을 효율적으로 처리 할 수 ​​있습니까?

+0

숙제 냄새가 나는가? –

+0

@^아니요 ... 실제 코드를 제공하지 않은 이유는 현재 코드가 현재 관련되어있는 프로젝트의 불필요한 추가 세부 정보를 많이 포함한다는 것입니다. – Graddy

+1

예제를 정리하려고 시도했습니다. 부정확 함) - 지금 정확한가? –

답변

4

또한 deepcopycopy 모듈을 사용할 수 있도록 개체 복사본을 만들어야합니다. 세부 사항은 http://docs.python.org/library/copy.html#copy.deepcopy을 확인하십시오. 그러면 모든 개체 및 기본 데이터가 복사됩니다.

+1

새로운 dict 객체를 만드는 경우 이전 객체를 복사하지 않고 방금 새 객체를 만듭니다. –

관련 문제