Python | Lista resumida de diccionarios con la misma clave

| | | | | | | | | |

Discutamos los diferentes métodos para realizar la tarea.

Método n.° 1: usar reducir () + operador

# código Python para demostración
# devolver la suma de los valores del diccionario ‚Äã ‚Äã
# con las mismas teclas en la lista del diccionario

importar colecciones, herramientas de función, operador


# Inicializando lista de diccionarios

ini_dict = [{ ` a` : 5 , `b` : 10 , ` c` : 90 } ,

{ `a` : < /código> 45 , `b` : 78 },

{ `a` : 90 , `c` : 10 }]



# imprime el diccionario fuente

print ( "diccionario inicial" , str (ini_dict))


# suma los valores ‚ Äã‚Äãcon las mismas claves

resultado = dict (functools. reducir (operator.add,

mapa (colecciones.Contador, ini_dict)))


print ( "diccionario resultante:" , str (resultado))

Salida:

diccionario inicial [{`b`: 10, `a`: 5, `c`: 90}, {`b`: 78, `a`: 45}, {`a`: 90, `c`: 10} ]
diccionario resultante: {`b`: 88, `a`: 140, `c`: 100}

Método # 2: Usar un contador

# código Python para demostración
# devolver la suma de los valores del diccionario ​​
# con las mismas claves en la lista del diccionario


soy port colecciones


# Inicializando lista de diccionarios

ini_dict = [{ ` a` : 5 , `b` : 10 , < clase de código = "cadena"> `c` : 90 },

{ `a` : 45 , ` b` : 78 },

{< /código> `a` : 90 , < /código> `c` : 10 }]


# imprime el diccionario fuente

imprimir ( " diccionario inicial " , str (ini_dict))


# resumir los valores con las mismas claves

counter = colecciones.Contador ()

para d en ini_dict:

contador.actualizar (d)


resultado = dict (contador)


print ( "diccionario resultante:" , str (contador))

Salir:

diccionario inicial [{`c`: 90, `a`: 5, ` b`: 10}, {`a`: 45, `b`: 78}, {`a`: 90, `c`: 10}]
diccionario resultante: Contador ({`a`: 140, ` c`: 100, `b`: 88})

Método n.º 3: método ingenuo


# código Python para demostración
# devolver el diccionario de suma de valores
# con las mismas claves en el diccionario l ist

from operador importar captador de elementos


# Inicializando lista de diccionarios

ini_dict = [{ ` a` : 5 , `b` : 10 , `c` : 90 },

{< /código> `a` : 45 , `b` : 78 < /código> },

{ `a` : 90 , ` c` : 10 }]


# imprime el diccionario original

imprime ( "diccionario inicial" , str (ini_dict))


# suma los valores ‚ Äã‚Äãcon las mismas claves

result = {}

for d < clase de código = "palabra clave"> en ini_dict:

para k en d.keys():

resultado [k] = resultado.get (k, 0 ) + d [k]



print ( " diccionario resultante: " , str (resultado))

Salir:

diccionario inicial [{`b ` : 10, `c`: 90, `a`: 5}, {` b `: 78,` a `: 45}, {` c `: 10,` a `: 90}]
diccionario resultante: {`b`: 88, `c`: 100, `a` : 140}