2016-08-25 3 views
-4

Ich habe eine Liste der Wörterbücher wie:Merging Python Wörterbücher und das Hinzufügen von ähnlichem Wert Werten

[{'A': 2, 'B': u'cat'}, {'A': 1, 'B': u'dog'}, {'A': 3, 'B': u'rabbit'}, {'A': 4, 'B': u'cat'}, {'A': 4, 'B': u'dog'}, {'A': 8, 'B': u'rabbit'}] 

mag ich es in umwandeln:

[{'cat':'6'},{'dog':'5'}, {'rabbit':'11'}] 

Ich habe versucht, so etwas wie dies zu tun:

super_dict = collections.defaultdict(set) 
     for d in ss: 
      for k, v in d.iteritems(): 
       super_dict[k].add(v) 

Aber es gibt zurück:

{'A': set([2, 1, 3, 4, 4, 7]), 'B': set([u'cat', u'dog', u'rabbit'])} 
+2

SO ist kein Code-Schreibdienst. Sie sollten zumindest minimalen Aufwand zeigen, um dieses Problem selbst zu lösen. – DeepSpace

+0

@DeepSpace tut mir leid. Habe einfach hinzugefügt, wie ich es gemacht habe. – user1630729

Antwort

1
>>> my_list = [{'A': 2, 'B': u'cat'}, {'A': 1, 'B': u'dog'}, {'A': 3, 'B': u'rabbit'}, {'A': 4, 'B': u'cat'}, {'A': 4, 'B': u'dog'}, {'A': 8, 'B': u'rabbit'}] 
>>> new_dict = {} 
>>> for item in my_list: 
...  new_dict[item['B']] = new_dict.get(item['B'], 0) + item['A'] 
... 
>>> new_dict 
{u'dog': 5, u'rabbit': 11, u'cat': 6} 
Verwandte Themen