2017-11-24 5 views
0

Ich habe eine folgende Liste:Wie summieren Sie alle Werte, die Duplikaten zugeordnet sind, in der Liste der Listen zusammen?

x = [['A', 300], ['C', 200], ['B', 1500], ['A', 1000], ['C', 1000]] 

Jetzt möchte ich eine neue Liste erzeugen, in dem das Format ähnlich ist, aber alle die ganzen Zahlen von doppelte Strings in der Liste der Listen werden zusammen summiert. Mein gewünschtes Ergebnis wäre:

x2 = [['A', 1300], ['B', 1500], ['C', 1200]] 

Wie kann dies getan werden?

+0

Was haben Sie versucht? –

Antwort

1

Da das Endergebnis wie ein Wörterbuch ist, können Sie ein Wörterbuch verwenden, um es zu erstellen.

import collections 

x = [['A', 300], ['C', 200], ['B', 1500], ['A', 1000], ['C', 1000]] 

d = collections.defaultdict(int) 
for k, v in x: 
    d[k] += v 

x2 = d.items() 
# Or list(d.items()) if you really need a list 
# And list(map(list, d.items())) if you need a list of 
# lists, and not a list of tuples. 
Verwandte Themen