如何在Python中创建透视嵌套字典

3 投票
1 回答
2233 浏览
提问于 2025-04-17 13:30

可能重复的问题:
反转嵌套字典的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}}

撰写回答