recorrer - python comparar diccionarios
¿Cómo se suman todos los valores en un diccionario? (3)
Como era de esperar:
sum(d.values())
En Python <3, es posible que desee utilizar itervalues
en itervalues
lugar (que no crea una lista temporal).
Digamos que tengo un diccionario en el que las teclas se asignan a enteros como:
d = {''key1'': 1,''key2'': 14,''key3'': 47}
¿Hay una manera sintácticamente minimalista de devolver la suma de los valores en d
-ie 62
en este caso?
En Python 2 puede evitar realizar una copia temporal de todos los valores utilizando el método del diccionario itervalues()
, que devuelve un iterador de las claves del diccionario:
sum(d.itervalues())
En Python 3 puedes simplemente usar d.values()
porque ese método fue cambiado para hacer eso (y se itervalues()
porque ya no era necesario).
Para facilitar la escritura de código independiente de la versión que siempre itera sobre los valores de las claves del diccionario, una función de utilidad puede ser útil:
import sys
def itervalues(d):
return iter(getattr(d, (''itervalues'', ''values'')[sys.version_info[0]>2])())
sum(itervalues(d))
Esto es esencialmente lo que hace el six
módulos de Benjamin Peterson.
Seguro que hay Aquí hay una manera de sumar los valores de un diccionario.
>>> d = {''key1'':1,''key2'':14,''key3'':47}
>>> sum(d.values())
62