377 Stimmen

Wie summiere ich alle Werte in einem Wörterbuch?

Nehmen wir an, ich habe ein Wörterbuch, in dem die Schlüssel ganzen Zahlen zugeordnet sind wie:

d = {'key1': 1,'key2': 14,'key3': 47}

Gibt es eine syntaktisch minimalistische Möglichkeit, die Summe der Werte in d -d.h. 62 in diesem Fall?

5voto

Pratyush Raizada Punkte 143

Me siento sum(d.values()) ist der effizienteste Weg, um die Summe zu erhalten.

Sie können auch die Funktion reduce verwenden, um die Summe zusammen mit einem Lambda-Ausdruck zu berechnen:

reduce(lambda x,y:x+y,d.values())

5voto

Tamil Selvan S Punkte 533

VERWENDEN SIE SUMME(), um die Werte in einem WÖRTERBUCH zu summieren.

Rufen Sie dict.values() auf, um die Werte eines Wörterbuchs dict zurückzugeben. Verwenden Sie sum(Werte), um die Summe der Werte aus dem vorherigen Schritt zurückzugeben.

d = {'key1':1,'key2':14,'key3':47}
values = d.values()
#Return values of a dictionary    
total = sum(values)
print(total)

3voto

Reza Punkte 137

Die Antwort von phihag (und ähnliche) funktioniert nicht in Python 3.

Für Python 3:

d = {'key1': 1,'key2': 14,'key3': 47}
sum(list(d.values()))

Aktualisieren! Es gibt Beschwerden, dass es nicht funktioniert! Ich füge einfach einen Screenshot von meinem Terminal an. Könnte eine Unstimmigkeit in den Versionen etc. sein.

enter image description here

1voto

nemo Punkte 11816

Die einfachste/dümmste Lösung:

https://trinket.io/python/a8a1f25353

d = {'key1': 1,'key2': 14,'key3': 47}
s = 0
for k in d:
    s += d[k]

print(s)

oder wenn Sie es ausgefallener mögen:

https://trinket.io/python/5fcd379536

import functools

d = {'key1': 1,'key2': 14,'key3': 47}
s = functools.reduce(lambda acc,k: acc+d[k], d, 0)

print(s)

0voto

Rahul Patel Punkte 76

Sie könnten dafür eine "for-Schleife" in Betracht ziehen:

  d = {'data': 100, 'data2': 200, 'data3': 500}
  total = 0
  for i in d.values():
        total += i

Summe = 800

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X