Python | Combina los valores de dos diccionarios que tienen la misma clave

El diccionario es una colección desordenada, modificable e indexada. En Python, los diccionarios se escriben con corchetes y tienen claves y valores. Es ampliamente utilizado en la programación diaria, el desarrollo web y el aprendizaje automático. La combinación de diccionarios es una tarea muy común en las operaciones de diccionario.

Veamos cómo combinar los valores de dos diccionarios que tienen la misma clave.

Método #1: UsarCounter
Counter es una subclase especial de diccionario que realiza los mismos actos que el diccionario en la mayoría de los casos.

# Python code to demonstrate combining 
# two dictionaries having same key
  
from collections import Counter
  
# initialising dictionaries
ini_dictionary1 = Counter({'nikhil': 1, 'akash' : 5,
                     'manjeet' : 10, 'akshat' : 15})
ini_dictionary2 = Counter({'akash' : 7, 'akshat' : 5,
                                          'm' : 15})
  
# printing initial dictionaries
print ("initial 1st dictionary", str(ini_dictionary1))
print ("initial 2nd dictionary", str(ini_dictionary2))
  
# combining dictionaries
# using Counter
final_dictionary = ini_dictionary1 + ini_dictionary2
  
# printing final result
print ("final dictionary", str(final_dictionary))
Producción:

Contador del primer diccionario inicial ({‘akshat’: 15, ‘manjeet’: 10, ‘akash’: 5, ‘nikhil’: 1})
Contador del segundo diccionario inicial ({‘m’: 15, ‘akash’: 7, ‘ akshat’: 5})
Contador de diccionario final ({‘akshat’: 20, ‘m’: 15, ‘akash’: 12, ‘manjeet’: 10, ‘nikhil’: 1})

 
Método #2: Usardict() and items
este método es para la versión 2 de Python.

# Python code to demonstrate combining 
# two dictionaries having same key
  
  
# initialising dictionaries
ini_dictionary1 = {'nikhil': 1, 'akash' : 5,
              'manjeet' : 10, 'akshat' : 15}
ini_dictionary2 = {'akash' : 7, 'akshat' : 5,
                                    'm' : 15}
  
# printing initial dictionaries
print ("initial 1st dictionary", str(ini_dictionary1))
print ("initial 2nd dictionary", str(ini_dictionary2))
  
# combining dictionaries
# using dict() and items()
final_dictionary = dict(ini_dictionary1.items() + ini_dictionary2.items() +
                    [(k, ini_dictionary1[k] + ini_dictionary2[k])
                    for k in set(ini_dictionary2)
                    & set(ini_dictionary1)])
  
# printing final result
print ("final dictionary", str(final_dictionary))
Producción:

(‘primer diccionario inicial’, “{‘manjeet’: 10, ‘nikhil’: 1, ‘akshat’: 15, ‘akash’: 5}”)
(‘segundo diccionario inicial’, “{‘m’: 15, ‘akshat’: 5, ‘akash’: 7}»)
(‘diccionario final’, «{‘nikhil’: 1, ‘m’: 15, ‘manjeet’: 10, ‘akshat’: 20, ‘akash’: 12}”)

 
Método n.º 3: usar la comprensión y el conjunto de dictados

# Python code to demonstrate combining 
# two dictionaries having same key
  
# initialising dictionaries
ini_dictionary1 = {'nikhil': 1, 'akash' : 5, 
              'manjeet' : 10, 'akshat' : 15}
ini_dictionary2 = {'akash' : 7, 'akshat' : 5, 
                                    'm' : 15}
  
# printing initial dictionaries
print ("initial 1st dictionary", str(ini_dictionary1))
print ("initial 2nd dictionary", str(ini_dictionary2))
  
# combining dictionaries
# using dict comprehension and set
final_dictionary =  {x: ini_dictionary1.get(x, 0) + ini_dictionary2.get(x, 0)
                    for x in set(ini_dictionary1).union(ini_dictionary2)}
  
# printing final result
print ("final dictionary", str(final_dictionary))
Producción:

primer diccionario inicial {‘nikhil’: 1, ‘akshat’: 15, ‘akash’: 5, ‘manjeet’: 10}
segundo diccionario inicial {‘akshat’: 5, ‘akash’: 7, ‘m’: 15}
diccionario final {‘nikhil’: 1, ‘akshat’: 20, ‘akash’: 12, ‘m’: 15, ‘manjeet’: 10}

Publicación traducida automáticamente

Artículo escrito por garg_ak0109 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *