Aprenda 7 formas diferentes de fusionar dos diccionarios en Python. Este artículo cubre el método update(), el | operador, el operador **, comprensión de diccionario y más.
Los diccionarios son una de las estructuras de datos integradas en Python. Puede usarlos para almacenar datos en pares clave-valor.
Puede leer acerca de los diferentes métodos que puede usar para acceder, modificar, agregar y eliminar elementos en un diccionario aquí .
En este artículo, aprenderá cómo fusionar dos diccionarios usando lo siguiente:
En esta sección, discutiremos los diferentes métodos que puede usar para fusionar diccionarios en Python, junto con ejemplos de código.
Todos los ejemplos que verá en este artículo implicarán la fusión de dos diccionarios, pero puede fusionar tantos como desee.
El update()método es un método integrado que puede usar para agregar datos a los diccionarios.
Considere el siguiente diccionario:
devBio = {
"name": "Ihechikara",
"age": 500,
"language": "Python"
}
devBio.update({"role": "Technical Writer"})
print(devBio)
# {'name': 'Ihechikara', 'age': 500, 'language': 'Python', 'role': 'Technical Writer'}
En el código anterior, creamos un diccionario llamado devBiocon tres pares de clave y valor: {'name': 'Ihechikara', 'age': 50, 'language': 'Python'}.
Usando el update()método, agregamos otro par de clave y valor: devBio.update({"role": "Technical Writer"}).
De la misma manera, podemos fusionar dos diccionarios pasando otro diccionario como parámetro al update()método. Aquí hay un ejemplo:
devBio = {
"name": "Ihechikara",
"age": 500,
"language": "Python"
}
tools = {
"dev environment": "JupyterLab",
"os": "Windows",
"visualization": "Matplotlib"
}
devBio.update(tools)
print(devBio)
# {'name': 'Ihechikara', 'age': 500, 'language': 'Python', 'dev environment': 'JupyterLab', 'os': 'Windows', 'visualization': 'Matplotlib'}
En el código anterior, creamos dos diccionarios: devBioy tools.
Usando el update()método, fusionamos los pares de clave y valor del toolsdiccionario en el devBiodiccionario: devBio.update(tools).
Los diccionarios combinados se veían así:
{
'name': 'Ihechikara',
'age': 500,
'language': 'Python',
'dev environment': 'JupyterLab',
'os': 'Windows',
'visualization': 'Matplotlib'
}
Puede usar el operador de doble asterisco (también llamado doble estrella) ( **) para "desempaquetar" y fusionar los pares de clave y valor de dos o más diccionarios en una variable.
Aquí hay un ejemplo de código:
devBio = {
"name": "Ihechikara",
"age": 500,
"language": "Python"
}
tools = {
"dev environment": "JupyterLab",
"os": "Windows",
"visualization": "Matplotlib"
}
merged_bio = { **devBio, **tools}
print(merged_bio)
# {'name': 'Ihechikara', 'age': 500, 'language': 'Python', 'dev environment': 'JupyterLab', 'os': 'Windows', 'visualization': 'Matplotlib'}
En el código anterior, desempaquetamos los diccionarios devBioy toolsusando el operador de doble asterisco: { **devBio, **tools}.
Luego los almacenamos en una variable llamada merged_bio.
El chain()método toma múltiples objetos iterables como su parámetro. Combina y devuelve los objetos como un objeto iterable.
Tienes que importar el chain()método desde el itertoolsmódulo antes de usarlo:
from itertools import chain
devBio = {
"name": "Ihechikara",
"age": 500,
"language": "Python"
}
tools = {
"dev environment": "JupyterLab",
"os": "Windows",
"visualization": "Matplotlib"
}
merged_bio = dict(chain(devBio.items(), tools.items()))
print(merged_bio)
# {'name': 'Ihechikara', 'age': 500, 'language': 'Python', 'dev environment': 'JupyterLab', 'os': 'Windows', 'visualization': 'Matplotlib'}
En el código anterior, pasamos los diccionarios a fusionar como parámetros al chain()método: chain(devBio.items(), tools.items()).
Usamos el items()método para acceder a los pares clave y valor de cada diccionario.
Por último, anidamos el chain()método y sus parámetros en el dict()método: dict(chain(devBio.items(), tools.items())).
El dict()método se puede usar para crear un diccionario, así que lo usamos para convertir los objetos iterables devueltos (los pares de clave y valor) en un diccionario y los almacenamos en la merged_biovariable.
El ChainMap()método funciona de la misma manera que el chain()método en lo que respecta a la fusión de diccionarios. La principal diferencia es que no necesita el items()método para acceder a los pares de clave y valor de los diccionarios.
Puede importar el ChainMap()método desde el collectionsmódulo.
Así es como puede usar el ChainMap()método para fusionar dos diccionarios:
from collections import ChainMap
devBio = {
"name": "Ihechikara",
"age": 500,
"language": "Python"
}
tools = {
"dev environment": "JupyterLab",
"os": "Windows",
"visualization": "Matplotlib"
}
merged_bio = dict(ChainMap(devBio, tools))
print(merged_bio)
# {'name': 'Ihechikara', 'age': 500, 'language': 'Python', 'dev environment': 'JupyterLab', 'os': 'Windows', 'visualization': 'Matplotlib'}
Puede consultar la explicación en la última sección para comprender la lógica en el código anterior.
El operador de combinación ( |) se introdujo por primera vez en Python 3.9. Es una sintaxis más corta y simple que puede usar para fusionar diccionarios.
Aquí hay un ejemplo:
from collections import ChainMap
devBio = {
"name": "Ihechikara",
"age": 500,
"language": "Python"
}
tools = {
"dev environment": "JupyterLab",
"os": "Windows",
"visualization": "Matplotlib"
}
merged_bio = devBio | tools
print(merged_bio)
# {'name': 'Ihechikara', 'age': 500, 'language': 'Python', 'dev environment': 'JupyterLab', 'os': 'Windows', 'visualization': 'Matplotlib'}
Entonces, para fusionar el diccionario devBioy tools, colocamos el |operador entre ellos: devBio | tools.
El operador de actualización ( |=) es otro operador que se introdujo en Python 3.9.
Funciona igual que el update()método. Eso es:
from collections import ChainMap
devBio = {
"name": "Ihechikara",
"age": 500,
"language": "Python"
}
tools = {
"dev environment": "JupyterLab",
"os": "Windows",
"visualization": "Matplotlib"
}
devBio |= tools
print(devBio)
# {'name': 'Ihechikara', 'age': 50, 'language': 'Python', 'dev environment': 'JupyterLab', 'os': 'Windows', 'visualization': 'Matplotlib'}
En el código anterior, usamos el |=para fusionar los pares de clave y valor en el toolsdiccionario en el devBiodiccionario.
En este artículo, hablamos sobre los diccionarios en Python. Puede usarlos para almacenar datos en pares clave-valor.
Vimos cómo fusionar dos diccionarios en Python usando:
Cada método tenía su propia sección con ejemplos de código que mostraban cómo usarlos para fusionar diccionarios.
¡Feliz codificación!
Fuente: https://www.freecodecamp.org
#python