logo

Pitón | Fusionando dos diccionarios

En Python, un diccionario es una estructura de datos que contiene el elemento del par clave-valor en el que se utilizan las claves para acceder a los valores del diccionario. Pitón tiene algunos diccionarios incorporados como defaultdict. En este artículo, veremos varias formas de fusionar dos diccionarios.

Ejemplo



  Input:   dict1 = {'a': 10, 'b': 8}  dict2 = {'d': 6, 'c': 4}   Output:   {'a': 10, 'b': 8, 'd': 6, 'c': 4}>

Fusionando dos diccionarios en Python

Hay varias maneras en que Diccionarios se puede fusionar utilizando varias funciones y constructores en Python. A continuación se muestran algunas de las siguientes formas:

  • Usando actualizar()
  • Usando operador de desembalaje
  • Usando combinación | operador
  • Usando bucles y llaves() método
  • Usando el constructor dict
  • Usando el constructor dict() con el operador de unión (|)
  • Usando reducir()

Actualización de Python()

Usando el método actualizar() En Python, una lista se puede fusionar con otra. Pero en esto, la segunda lista se fusiona con la primera lista y no se crea ninguna lista nueva. Vuelve Ninguno . En este ejemplo, utilizamos la función de actualización para fusionar dos diccionarios.

Pitón
# Python code to merge dict using update() method def Merge(dict1, dict2): return(dict2.update(dict1)) # Driver code dict1 = {'a': 10, 'b': 8} dict2 = {'d': 6, 'c': 4} # This returns None print(Merge(dict1, dict2)) # changes made in dict2 print(dict2)>

Producción:



None {'c': 4, 'a': 10, 'b': 8, 'd': 6}>

Complejidad del tiempo: En)
Espacio auxiliar: O(1)

Operador de descompresión de Python

Usar ** [doble estrella] es un atajo que le permite pasar múltiples argumentos a una función directamente usando un diccionario. Para más información consulte **kwargs en Python . Usando esto, primero pasamos todos los elementos del primer diccionario al tercero y luego pasamos el segundo diccionario al tercero. Esto reemplazará las claves duplicadas del primer diccionario.

Pitón
# Python code to merge dict using a single  # expression def Merge(dict1, dict2): res = {**dict1, **dict2} return res # Driver code dict1 = {'a': 10, 'b': 8} dict2 = {'d': 6, 'c': 4} dict3 = Merge(dict1, dict2) print(dict3)>

Producción
{'a': 10, 'b': 8, 'd': 6, 'c': 4}>

Complejidad del tiempo: O(1)
Complejidad auxiliar: En)



Uso de diccionarios de combinación de Python | en Python 3.9

En la última actualización de Python ahora podemos usar | operador para fusionar dos diccionarios. Es un método muy conveniente para fusionar diccionarios. En este ejemplo, estamos usando | operador para fusionar dos diccionarios.

Pitón
# code # Python code to merge dict using a single  # expression  def Merge(dict1, dict2): res = dict1 | dict2 return res # Driver code  dict1 = {'x': 10, 'y': 8} dict2 = {'a': 6, 'b': 4} dict3 = Merge(dict1, dict2) print(dict3) # This code is contributed by virentanti16>

Producción:

{'x': 10, 'a': 6, 'b': 4, 'y': 8}>

Complejidad del tiempo: O(1)
Espacio auxiliar: EN)

Usando el método for loop ykeys()

En este ejemplo, estamos usando bucle y llave() Método para fusionar dos diccionarios.

Pitón
# code # Python code to merge dictionary def Merge(dict1, dict2): for i in dict2.keys(): dict1[i]=dict2[i] return dict1 # Driver code dict1 = {'x': 10, 'y': 8} dict2 = {'a': 6, 'b': 4} dict3 = Merge(dict1, dict2) print(dict3) # This code is contributed by Bhavya Koganti>

Producción
{'x': 10, 'y': 8, 'a': 6, 'b': 4}>

Diccionarios de combinación de Python utilizando la clase ChainMap

En este ejemplo, estamos fusionando diccionarios en Python usando el incorporado Mapa de cadena clase de la colecciones módulo. Esta clase le permite crear una vista única de varios diccionarios, y cualquier actualización o cambio realizado en ChainMap se reflejará en los diccionarios subyacentes.

Pitón
from collections import ChainMap # create the dictionaries to be merged dict1 = {'a': 1, 'b': 2} dict2 = {'c': 3, 'd': 4} # create a ChainMap with the dictionaries as elements merged_dict = ChainMap(dict1, dict2) # access and modify elements in the merged dictionary print(merged_dict['a']) # prints 1 print(merged_dict['c']) # prints 3 merged_dict['c'] = 5 # updates value in dict2 print(merged_dict['c']) # prints 5 # add a new key-value pair to the merged dictionary merged_dict['e'] = 6 # updates dict1 print(merged_dict['e']) # prints 6>

Producción
1 3 5 6>

Fusionar dos diccionarios en Python usando el constructor dict:

En este ejemplo, utilizamos el constructor dict para fusionar dos diccionarios.

Pitón
def merge_dictionaries(dict1, dict2): merged_dict = dict1.copy() merged_dict.update(dict2) return merged_dict # Driver code dict1 = {'x': 10, 'y': 8} dict2 = {'a': 6, 'b': 4} print(merge_dictionaries(dict1, dict2))>

Producción
{'x': 10, 'y': 8, 'a': 6, 'b': 4}>

Complejidad del tiempo: EN)
Espacio Auxiliar: EN)

Diccionarios de fusión de Python usando el constructor dict() y el operador de unión (|)

Este método utiliza el constructor dict() con el operador de unión (|) para fusionar dos diccionarios. El operador de unión combina las claves y los valores de los dos diccionarios, y cualquier clave común en los dos diccionarios toma el valor del segundo diccionario.

Pitón
# method to merge two dictionaries using the dict() constructor with the union operator (|) def Merge(dict1, dict2): # create a new dictionary by merging the items of the two dictionaries using the union operator (|) merged_dict = dict(dict1.items() | dict2.items()) # return the merged dictionary return merged_dict # Driver code dict1 = {'a': 10, 'b': 8} dict2 = {'d': 6, 'c': 4} # merge the two dictionaries using the Merge() function merged_dict = Merge(dict1, dict2) # print the merged dictionary print(merged_dict)>

Producción
{'d': 6, 'b': 8, 'c': 4, 'a': 10}>

Complejidad del tiempo: O(n), donde n es el número total de pares clave-valor en ambos diccionarios.
Espacio Auxiliar: O (n), donde n es el número total de pares clave-valor en ambos diccionarios

Python fusiona dos diccionarios usando reduce():

En este ejemplo, estamos fusionando dos diccionarios usando la función reducir(). En este método, definimos una función de combinación, luego toma dos diccionarios como argumentos y devuelve su combinación.

Pitón
from functools import reduce def merge_dictionaries(dict1, dict2): merged_dict = dict1.copy() merged_dict.update(dict2) return merged_dict dict1 = {'a': 10, 'b': 8} dict2 = {'d': 6, 'c': 4} dict_list = [dict1, dict2] # Put the dictionaries into a list result_dict = reduce(merge_dictionaries, dict_list) print(result_dict) #This code is contributed by Rayudu.>

Producción
{'a': 10, 'b': 8, 'd': 6, 'c': 4}>

Complejidad del tiempo: O (n), donde n es el número de diccionarios en la lista dict_list.
Complejidad auxiliar: O(m), donde m es el número total de pares clave-valor en todos los diccionarios.

int a cadena en java