logo

Python | Fuzionarea a două dicționare

În Python, un dicționar este o structură de date care conține elementul din perechea cheie-valoare în care cheile sunt folosite pentru a accesa valorile din dicționar. Piton are unele dicționare încorporate, cum ar fi defaultdict. În acest articol, vom vedea diferite moduri de a îmbina două dicționare.

Exemplu



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

Îmbinarea a două dicționare în Python

Există diverse moduri în care Dicționare poate fi îmbinat prin utilizarea diferitelor funcții și constructori în Python. Mai jos sunt câteva moduri:

  • Folosind Actualizați()
  • Folosind operator de despachetare
  • Folosind merge | operator
  • Folosind bucle și chei() metodă
  • Folosind constructorul dict
  • Folosind constructorul dict() cu operatorul de unire (|)
  • Folosind reduce()

Actualizare Python()

Prin folosirea metodei Actualizați() în Python, o listă poate fi îmbinată cu alta. Dar în aceasta, a doua listă este îmbinată în prima listă și nu este creată nicio listă nouă. Se întoarce Nici unul . În acest exemplu, folosim funcția de actualizare pentru a îmbina două dicționare.

Piton
# 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)>

Ieșire:



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

Complexitatea timpului: Pe)
Spatiu auxiliar: O(1)

Operator de despachetare Python

Utilizarea ** [stea dublă] este o comandă rapidă care vă permite să transmiteți mai multe argumente unei funcții direct folosind un dicționar. Pentru mai multe informații consultați **kwargs în Python . Folosind aceasta, trecem mai întâi toate elementele primului dicționar în al treilea și apoi trecem al doilea dicționar în al treilea. Aceasta va înlocui cheile duplicate ale primului dicționar.

Piton
# 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)>

Ieșire
{'a': 10, 'b': 8, 'd': 6, 'c': 4}>

Complexitatea timpului: O(1)
Complexitate auxiliară: Pe)



Python Merge Dicționare folosind | în Python 3.9

În cea mai recentă actualizare a python acum putem folosi | operator pentru a fuziona două dicționare. Este o metodă foarte convenabilă de a îmbina dicționare. În acest exemplu, folosim | operator pentru a fuziona două dicționare.

Piton
# 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>

Ieșire:

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

Complexitatea timpului: O(1)
Spatiu auxiliar: PE)

Folosind metoda for loop și keys().

În acest exemplu, folosim bucla și cheie() metoda de îmbinare a două dicționare.

Piton
# 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>

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

Python Merge Dicționare folosind clasa ChainMap

În acest exemplu, îmbinăm dicționarele în Python utilizând sistemul încorporat ChainMap clasa de la colecții modul. Această clasă vă permite să creați o singură vizualizare a mai multor dicționare, iar orice actualizări sau modificări aduse ChainMap vor fi reflectate în dicționarele de bază.

Piton
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>

Ieșire
1 3 5 6>

Îmbinați două dicționare în Python folosind constructorul dict:

În acest exemplu, folosim constructorul dict pentru a îmbina două dicționare.

Piton
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))>

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

Complexitatea timpului: PE)
Spațiu auxiliar: PE)

Python Merge Dicționare folosind constructorul dict() și operatorul de unire (|)

Această metodă folosește constructorul dict() cu operatorul de unire (|) pentru a îmbina două dicționare. Operatorul de unire combină cheile și valorile celor două dicționare, iar orice chei comune din cele două dicționare iau valoarea din al doilea dicționar.

Piton
# 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)>

Ieșire
{'d': 6, 'b': 8, 'c': 4, 'a': 10}>

Complexitatea timpului: O(n), unde n este numărul total de perechi cheie-valoare din ambele dicționare.
Spațiu auxiliar: O(n), unde n este numărul total de perechi cheie-valoare din ambele dicționare

cm în picioare și inci

Python Îmbina două dicționare folosind reduce():

În acest exemplu, îmbinăm două dicționare folosind funcția reduce(). În această metodă, definim o funcție de îmbinare, apoi ia două dicționare ca argumente și returnează îmbinarea acestora.

Piton
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.>

Ieșire
{'a': 10, 'b': 8, 'd': 6, 'c': 4}>

Complexitatea timpului:O(n), unde n este numărul de dicționare din lista dict_list.
Complexitate auxiliară: O(m), unde m este numărul total de perechi cheie-valoare din toate dicționarele.