V Pythonu je slovar podatkovna struktura, ki vsebuje element v paru ključ-vrednost, v katerem se ključi uporabljajo za dostop do vrednosti v slovarju. Python ima nekaj vgrajenih slovarjev, kot je defaultdict. V tem članku bomo videli različne načine za združitev dveh slovarjev.
Primer
Input: dict1 = {'a': 10, 'b': 8} dict2 = {'d': 6, 'c': 4} Output: {'a': 10, 'b': 8, 'd': 6, 'c': 4}>Združevanje dveh slovarjev v Pythonu
Obstajajo različni načini, kako Slovarji je mogoče združiti z uporabo različnih funkcij in konstruktorjev v Pythonu. Spodaj je nekaj naslednjih načinov:
- Uporaba nadgradnja()
- Uporaba operater razpakiranja
- Uporaba spajanja | operater
- Z uporabo zank in ključi() metoda
- Uporaba konstruktorja dict
- Uporaba konstruktorja dict() z operatorjem unije (|)
- Uporaba zmanjšati ()
Python posodobitev()
Z uporabo metode nadgradnja() v Pythonu je mogoče en seznam združiti z drugim. Toda v tem primeru je drugi seznam združen s prvim seznamom in nov seznam ni ustvarjen. Vrača se Noben . V tem primeru uporabljamo funkcijo posodobitve za združitev dveh slovarjev.
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)> Izhod:
None {'c': 4, 'a': 10, 'b': 8, 'd': 6}> Časovna zahtevnost: O(n)
Pomožni prostor: O(1)
Operator za razpakiranje Python
Uporaba ** [dvojne zvezdice] je bližnjica, ki omogoča posredovanje več argumentov funkciji neposredno s pomočjo slovarja. Za več informacij glejte **kwargs v Pythonu . S tem najprej posredujemo vse elemente prvega slovarja v tretjega in nato posredujemo drugi slovar v tretjega. To bo nadomestilo podvojene ključe prvega slovarja.
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)> Izhod
{'a': 10, 'b': 8, 'd': 6, 'c': 4}> Časovna zahtevnost: O(1)
Pomožna kompleksnost: O(n)
Python spajanje slovarjev z | v Pythonu 3.9
V najnovejši posodobitvi pythona zdaj lahko uporabljamo | operator za združitev dveh slovarjev. To je zelo priročen način za združevanje slovarjev. V tem primeru uporabljamo | operator za združitev dveh slovarjev.
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> Izhod:
{'x': 10, 'a': 6, 'b': 4, 'y': 8}> Časovna zahtevnost: O(1)
Pomožni prostor: O(N)
Uporaba zanke for in metode keys().
V tem primeru uporabljamo zanko in ključ() metoda za združitev dveh slovarjev.
vzorci oblikovanja javaPython
# 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> Izhod
{'x': 10, 'y': 8, 'a': 6, 'b': 4}> Python spajanje slovarjev z uporabo razreda ChainMap
V tem primeru združujemo slovarje v Pythonu z uporabo vgrajenega ChainMap razreda iz zbirke modul. Ta razred vam omogoča, da ustvarite en sam pogled več slovarjev, vse posodobitve ali spremembe ChainMap pa se bodo odražale v osnovnih slovarjih.
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> Izhod
1 3 5 6>
Združi dva slovarja v Pythonu z uporabo konstruktorja dict:
V tem primeru uporabljamo konstruktor dict za združitev dveh slovarjev.
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))> Izhod
{'x': 10, 'y': 8, 'a': 6, 'b': 4}> Časovna zapletenost: O(N)
Pomožni prostor: O(N)
Slovarji spajanja Pythona z uporabo konstruktorja dict() in operatorja združevanja (|)
Ta metoda uporablja konstruktor dict() z operatorjem unije (|) za združitev dveh slovarjev. Operator združevanja združi ključe in vrednosti obeh slovarjev, vsi skupni ključi v obeh slovarjih pa prevzamejo vrednost iz drugega slovarja.
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)> Izhod
{'d': 6, 'b': 8, 'c': 4, 'a': 10}> Časovna zahtevnost: O(n), kjer je n skupno število parov ključ-vrednost v obeh slovarjih.
Pomožni prostor: O(n), kjer je n skupno število parov ključ-vrednost v obeh slovarjih
Python združi dva slovarja z uporabo reduce():
V tem primeru združujemo dva slovarja z uporabo funkcije reduce(). Pri tej metodi definiramo funkcijo spajanja, nato vzamemo dva slovarja kot argumenta in vrnemo njuno spajanje.
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.> Izhod
{'a': 10, 'b': 8, 'd': 6, 'c': 4}> Časovna zahtevnost: O(n), kjer je n število slovarjev na seznamu dict_list.
Pomožna kompleksnost: O(m), kjer je m skupno število parov ključ-vrednost v vseh slovarjih.