2016-12-13 1 views
1

Ich habe ein Python-Wörterbuch, das so aussieht.Summieren mehrerer Werte jeder Taste in einem Diktat?

{ 'item1' : [1,2,3,4,5,6], 
    'item2' : [2,3,1], 
    . 
    . 
    . 
    'item n' : [4,2,4,3,2] 
} 

Nun meine Forderung ist, dass ich die numerischen Werte dieser dict & zu zeigen, es hinzufügen möchten, wie: -

{ 'item1' : [21], 
    'item2' : [6], 
     . 
     . 
     . 
    'item n' : [15] 
} 

Ich möchte nur die mehrere Werte der einzelnen Tasten & aufsummiert werden angezeigt. Zu Ihrer Information, ich verwende eine Append-Funktion. Unten ist mein Code.

for row in range(2,sheet2.max_row): 
    for column in "D": 
     cell_name = "{}{}".format(column, row) 
    for column2 in "P": 
     cell_name2 = "{}{}".format(column2,row) 
     arrdata2dict.setdefault(sheet2[cell_name].value,[]) 
     arrdata2dict[sheet2[cell_name].value].append(sheet2[cell_name2].value) 

Antwort

2

Sie das Wörterbuch mit den Summen on-the-fly schaffen könnte:

Result = dict([(key, sum(values)) for key, values in yourDict.items()]) 
# or... 
Result = {key: sum(values) for key, values in yourDict.items()} 

Hier die Werte des neuen Wörterbuchs wird, Zahlen, aber wenn Sie wirklich sie brauchen Listen zu sein, können Sie den Anruf zu sum in beilegen eckige Klammern: [sum(values)].

+0

Hallo ForceBru, ja ich versuchte Summe hatte(), aber das hat nicht funktioniert, dank Ihrer dieser Lösung, funktioniert es – penta

2

Dies scheint unnötig kompliziert. Wenn Sie Ihre Eingabe als

inpt = { 'item1' : [1,2,3,4,5,6], 
     'item2' : [2,3,1], 
     . 
     . 
     . 
     'item n' : [4,2,4,3,2] 
     } 

haben, können Sie dann ein verwenden dictionary comprehension statt:

out = {k: [sum(inpt[k])] for k in inpt.keys()} 
0
items = {'item1' : [1,2,3,4,5,6], 
    'item2' : [2,3,1], 
    'item3' : [4,2,4,3,2] 
} 

for key, values in items.items(): 
    items[key] = sum(values) 
+0

Antworten, die gelöscht werden keine Erklärung enthalten, werden oft zu überprüfen und möglicherweise gesendet. Kannst du erklären, warum dies die richtige Antwort ist und inwieweit es das Beispiel des Fragestellers verbessert? – ImportanceOfBeingErnest

Verwandte Themen