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?

736voto

phihag Punkte 261131

Wie zu erwarten war:

sum(d.values())

73voto

martineau Punkte 110783

In Python 2 können Sie vermeiden, eine temporäre Kopie aller Werte zu erstellen, indem Sie die itervalues() dictionary-Methode, die einen Iterator der Schlüssel des Wörterbuchs zurückgibt:

sum(d.itervalues())

In Python 3 können Sie einfach d.values() weil diese Methode geändert wurde, um dies zu tun (und itervalues() wurde entfernt, da sie nicht mehr benötigt wurde).

Um es einfacher zu machen, versionsunabhängigen Code zu schreiben, der immer über die Werte der Schlüssel des Wörterbuchs iteriert, kann eine Hilfsfunktion hilfreich sein:

import sys

def itervalues(d):
    return iter(getattr(d, ('itervalues', 'values')[sys.version_info[0]>2])())

sum(itervalues(d))

Dies ist im Wesentlichen der Inhalt von Benjamin Petersons six Modul tut.

21voto

vz0 Punkte 31299

Ja, natürlich. Hier ist eine Möglichkeit, die Werte eines Wörterbuchs zu summieren.

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

10voto

Kalyan Pendyala Punkte 81
d = {'key1': 1,'key2': 14,'key3': 47}
sum1 = sum(d[item] for item in d)
print(sum1)

Sie können dazu die for-Schleife verwenden

9voto

Behlul Valiyev Punkte 61

sum(d.values())

  • "d" -> Ihr Wörterbuch Variable

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