如何在Python中创建透视嵌套字典
可能重复的问题:
反转嵌套字典的Pythonic方法
我在解决这个嵌套字典的问题时遇到了困难。
我发现了一些可以使用的itertools函数,但我不太清楚怎么用。如果能在这方面提供一些帮助,那就太好了。
input = { "a" : { "x": 1, "y": 2 },
"b" : { "x": 3, "z": 4 } }
output = {'y': {'a': 2},
'x': {'a': 1, 'b': 3},
'z': {'b': 4} }
1 个回答
3
这里有一种简单的方法,使用了 dict.setdefault
这个功能:
i = { "a" : { "x": 1, "y": 2 },
"b" : { "x": 3, "z": 4 } }
d = {}
for key, value in i.iteritems():
for ikey, ivalue in value.iteritems():
d.setdefault(ikey,{})[key] = ivalue
print d
输出结果:
{'x': {'a': 1, 'b': 3}, 'y': {'a': 2}, 'z': {'b': 4}}