A Python, un diccionari és una estructura de dades que conté l'element del parell clau-valor en què s'utilitzen les claus per accedir als valors del diccionari. Python té alguns diccionaris integrats com defaultdict. En aquest article, veurem diverses maneres de combinar dos diccionaris.
Exemple
Input: dict1 = {'a': 10, 'b': 8} dict2 = {'d': 6, 'c': 4} Output: {'a': 10, 'b': 8, 'd': 6, 'c': 4}>Combinant dos diccionaris en Python
Hi ha diverses maneres en què Diccionaris es pot combinar utilitzant diverses funcions i constructors a Python. A continuació es mostren algunes maneres següents:
com convertir un nombre enter en una cadena en java
- Utilitzant actualitzar ()
- Utilitzant operador de desembalatge
- Utilitzant merge | operador
- Utilitzant bucles i claus() mètode
- Utilitzant el constructor dict
- Utilitzant el constructor dict() amb l'operador d'unió (|)
- Utilitzant reduir ()
Actualització de Python ()
Mitjançant l'ús del mètode actualitzar () a Python, una llista es pot combinar amb una altra. Però en això, la segona llista es fusiona amb la primera i no es crea cap llista nova. Torna Cap . En aquest exemple, estem utilitzant la funció d'actualització per combinar dos diccionaris.
Python # 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)> Sortida:
None {'c': 4, 'a': 10, 'b': 8, 'd': 6}> Complexitat temporal: O(n)
Espai auxiliar: O(1)
Operador de desempaquetat de Python
L'ús de ** [doble estrella] és una drecera que us permet passar diversos arguments a una funció directament mitjançant un diccionari. Per a més informació consulteu **kwargs a Python . Amb això primer passem tots els elements del primer diccionari al tercer i després passem el segon diccionari al tercer. Això substituirà les claus duplicades del primer diccionari.
Python # 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)> Sortida
{'a': 10, 'b': 8, 'd': 6, 'c': 4}> Complexitat temporal: O(1)
Complexitat auxiliar: O(n)
Python Combina diccionaris amb | a Python 3.9
A l'última actualització de Python ara podem utilitzar | operador per combinar dos diccionaris. És un mètode molt convenient per combinar diccionaris. En aquest exemple, estem utilitzant | operador per combinar dos diccionaris.
Python # 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> Sortida:
{'x': 10, 'a': 6, 'b': 4, 'y': 8}> Complexitat temporal: O(1)
Espai auxiliar: O(N)
Utilitzant el mètode for loop i keys().
En aquest exemple, estem utilitzant bucle i clau () mètode per combinar dos diccionaris.
Python # 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> Sortida
{'x': 10, 'y': 8, 'a': 6, 'b': 4}> Python Merge Diccionaris mitjançant la classe ChainMap
En aquest exemple, estem combinant diccionaris a Python mitjançant l'ús integrat ChainMap classe de la col·leccions mòdul. Aquesta classe us permet crear una vista única de diversos diccionaris, i qualsevol actualització o canvi fet al ChainMap es reflectirà als diccionaris subjacents.
Python 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> Sortida
1 3 5 6>
Combina dos diccionaris a Python mitjançant el constructor dict:
En aquest exemple, estem utilitzant el constructor dict per combinar dos diccionaris.
Python 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))> Sortida
{'x': 10, 'y': 8, 'a': 6, 'b': 4}> Complexitat temporal: O(N)
Espai auxiliar: O(N)
Python Merge Diccionaris utilitzant el constructor dict() i l'operador d'unió (|)
Aquest mètode utilitza el constructor dict() amb l'operador d'unió (|) per combinar dos diccionaris. L'operador d'unió combina les claus i els valors dels dos diccionaris, i qualsevol clau comuna dels dos diccionaris pren el valor del segon diccionari.
Python # 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)> Sortida
{'d': 6, 'b': 8, 'c': 4, 'a': 10}> Complexitat temporal: O(n), on n és el nombre total de parells clau-valor als dos diccionaris.
Espai auxiliar: O(n), on n és el nombre total de parells clau-valor als dos diccionaris
Python Combina dos diccionaris mitjançant reduce():
En aquest exemple, estem combinant dos diccionaris mitjançant la funció reduce(). En aquest mètode, definim una funció de combinació i després prenem dos diccionaris com a arguments i retornem la seva combinació.
Python 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.> Sortida
{'a': 10, 'b': 8, 'd': 6, 'c': 4}> Complexitat temporal: O(n), on n és el nombre de diccionaris a la llista dict_list.
Complexitat auxiliar: O(m), on m és el nombre total de parells clau-valor de tots els diccionaris.