회상 질문 제목에 사과드립니다. 그러나 여기에는 제가 의미하는 바가 있습니다. 파이썬에서 중첩 된 사전의 키 순서를 교환하는 효율적인 방법은 무엇입니까?
값에InnerKey,OuterKey
쌍 협회 보존되어 있지만, 순서는 단순히 반전 된 방법
newdictionary = {"InnerKey1" : {"OuterKey1" : "Value1", "OuterKey2" : "Value3"},
"InnerKey2" : {"OuterKey1" : "Value2", "OuterKey2" : "Value4"}}
통지에
mydictionary = {"OuterKey1": {"InnerKey1": "Value1", "InnerKey2": "Value2"},
"OuterKey2": {"InnerKey1": "Value3", "InnerKey2": "Value4"}}
변환. 이전에 Value1
에 mydictionary[OuterKey][InnerKey]
을 사용하여 액세스 한 경우 이제 newdictionary[InnerKey][OuterKey]
을 사용하여 액세스합니다.
이를 달성하기위한 직접적인 방법은 첫 번째 사전을 통해 두 개의 중첩 루프를 다시 만들고 한 번에 두 번째 사전 하나의 요소를 작성하는 것입니다. 그러나 목록 작성과 같이 클리너/파이썬 적 방법이 더 많을지 궁금합니다.
업데이트 : 원하는 출력에 대해 혼란이있는 것 같습니다. 특히, 변환 후에 OuterKey가 매핑해야하는 값에 대한 혼동이 있습니다. 대답은 이전의 외부 키 (현재 내부 키)가에 매핑 된 이전 내부 키 (현재 외부 키)와 동일한 값으로 매핑되어야한다는 것입니다. 이처럼
가'Value1'와'Value3'이 예상 출력에 같은 사전에 있어야하는데? 당신은 어디서나 그것을 설명하는 것 같지 않습니다. – TerryA
동일한 키 쌍이 항상 같은 값을 리턴해야합니다. 그래서 mydictionary [key1] [key2] == newdictionary [key2] [key1]' – Luke