为令人费解的问题标题道歉,但这是我的意思的一个例子。
转换
mydictionary = {"OuterKey1": {"InnerKey1": "Value1", "InnerKey2": "Value2"},
"OuterKey2": {"InnerKey1": "Value3", "InnerKey2": "Value4"}}
进入
newdictionary = {"InnerKey1" : {"OuterKey1" : "Value1", "OuterKey2" : "Value3"},
"InnerKey2" : {"OuterKey1" : "Value2", "OuterKey2" : "Value4"}}
注意InnerKey,OuterKey
pair 与值的关联是如何保留的,但它们的顺序只是颠倒了。我们以前Value1
使用mydictionary[OuterKey][InnerKey]
访问的地方,现在使用newdictionary[InnerKey][OuterKey]
.
实现此目的的直接方法是通过第一个字典重新创建两个嵌套循环,并一次构建第二个字典一个元素。但是,我想知道是否有更清洁/更 Pythonic 的方式来做到这一点,例如使用列表推导。
更新:似乎对所需的输出有些混淆。特别是,在转换后 OuterKey 应该映射到哪个值存在混淆。答案是之前的外键(现在的内键)应该映射到与之前的内键(现在的外键)映射到的相同的值。