Possible Duplicate:
Pythonic Way to reverse nested dictionaries
我很难找到这个嵌套字典问题的解决方案。
我发现了一些可以使用的itertools函数,但我不清楚如何使用它。在这方面的任何帮助都很好

input = { "a" : { "x": 1, "y": 2 },
          "b" : { "x": 3, "z": 4 } }


output = {'y': {'a': 2},
          'x': {'a': 1, 'b': 3},
          'z': {'b': 4} }

最佳答案

使用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}}

10-07 15:07