Búsqueda de sitios web

Tres formas sencillas de fusionar diccionarios de Python


Aprenda a combinar diccionarios de Python de manera eficiente utilizando métodos integrados, desempaquetado y el operador de unión.

Cuando trabaje con diccionarios en Python, a veces tendrá que fusionarlos en un solo diccionario para su posterior procesamiento.

En este tutorial, repasaremos tres métodos comunes para fusionar diccionarios de Python. Específicamente, nos centraremos en fusionar diccionarios usando:

  • El método actualizar()
  • diccionario desempaquetando
  • El operador sindical

Empecemos.

Nota: Puede encontrar los ejemplos de código en GitHub.

1. Usando el método update()

Para fusionar dos diccionarios, puede utilizar el método de diccionario update(). Puede utilizar el método update() para actualizar un diccionario existente con pares clave-valor de otro diccionario de la siguiente manera:

dict1.update(dict2)

Aquí :

  • dict1: El diccionario original que se actualizará.
  • dict2: el diccionario cuyos pares clave-valor se agregarán a dict1.

Nota: Este método modifica directamente el diccionario original. Si no desea eso, puede crear una copia del diccionario original y actualizar la copia.

Digamos que tenemos dos diccionarios de configuración, config1 y config2 que contienen información de configuración para conectarse a una base de datos:

config1 = {
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432
}

config2 = {
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

Ahora fusionemos una copia de config1 con config2:

# Merge using update() method
final_config = config1.copy()  # Create a copy to avoid modifying the original config1
final_config.update(config2)

print(final_config)

Como se ve, el método update() agrega todos los pares clave-valor de config2 a final_config, lo que da como resultado un diccionario combinado con toda la información de configuración. .

Output >>>
{
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432,
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

2. Uso del desempaquetado del diccionario: {**dict1, **dict2}

De la misma manera que descomprimes tuplas, también puedes descomprimir diccionarios usando **. Al hacerlo, se crea un nuevo diccionario al descomprimir los pares clave-valor de ambos diccionarios.

Supongamos que tiene los diccionarios dict1 y dict2. Puede descomprimir los pares clave-valor y fusionarlos en un nuevo diccionario de la siguiente manera:

merged_dict = {**dict1, **dict2}

Fusionemos los diccionarios de configuración como se muestra:

config1 = {
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432
}

config2 = {
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

# Merge using dictionary unpacking
final_config = {**config1, **config2}

print(final_config)

El método de descompresión del diccionario {**config1, **config2} crea un nuevo diccionario final_config que contiene todos los pares clave-valor de config1. y config2.

Output >>>
{
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432,
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

3. Usando la Unión | Operador

El operador de unión, introducido en Python 3.9, es otra forma concisa de fusionar dos diccionarios.

Puedes usar el operador union así:

merged_dict = dict1 | dict2

Usando dict1 | dict2 fusiona dict1 y dict2 en un nuevo diccionario.

config1 = {
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432
}

config2 = {
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

# Merge using | operator
final_config = config1 | config2

print(final_config)

El operador | fusiona config1 y config2 en un nuevo diccionario final_config:

Output >>>
{
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432,
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

Concluyendo

Repasemos los diferentes métodos para fusionar diccionarios de Python:

  • El método update()dict1.update(dict2)—actualiza un diccionario existente.
  • {**dict1, **dict2} crea un nuevo diccionario combinado mediante el desempaquetado.
  • La unión | operador en Python 3.9+ fusiona diccionarios con la sintaxis simple dict1 | dict2.

Esta no es una lista exhaustiva que cubre todos los métodos para fusionar diccionarios. Existen otros métodos, como listas por comprensión, creación de una vista combinada de diccionarios usando collections.ChainMap y más. Pero estos son los métodos más comunes para fusionar diccionarios.

¡Feliz codificación!

Bala Priya C es un desarrollador y redactor técnico de la India. Le gusta trabajar en la intersección de matemáticas, programación, ciencia de datos y creación de contenido. Sus áreas de interés y experiencia incluyen DevOps, ciencia de datos y procesamiento del lenguaje natural. ¡Le gusta leer, escribir, codificar y tomar café! Actualmente, está trabajando para aprender y compartir sus conocimientos con la comunidad de desarrolladores mediante la creación de tutoriales, guías prácticas, artículos de opinión y más. Bala también crea atractivas descripciones generales de recursos y tutoriales de codificación.