3

重複の可能性:
ネストされた辞書を逆にする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} }
4

1 に答える 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}}
于 2013-01-24T07:13:10.640 に答える