logo

Python | Zlúčenie dvoch slovníkov

V Pythone je slovník dátová štruktúra, ktorá obsahuje prvok v páre kľúč – hodnota, v ktorom sa kľúče používajú na prístup k hodnotám v slovníku. Python má niektoré vstavané slovníky ako defaultdict. V tomto článku uvidíme rôzne spôsoby, ako zlúčiť dva slovníky.

Príklad



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

Zlúčenie dvoch slovníkov v Pythone

Existujú rôzne spôsoby, ako Slovníky možno zlúčiť pomocou rôznych funkcií a konštruktorov v Pythone. Nižšie uvádzame niekoľko nasledujúcich spôsobov:

  • Použitím aktualizovať()
  • Použitím operátor vybaľovania
  • Pomocou zlúčenia | operátor
  • Pomocou slučiek a kľúče () metóda
  • Použitie konštruktora dict
  • Použitie konštruktora dict() s operátorom únie (|)
  • Použitím znížiť ()

Aktualizácia Pythonu ()

Pomocou metódy aktualizovať() v Pythone je možné jeden zoznam zlúčiť do druhého. Ale v tomto sa druhý zoznam zlúči s prvým zoznamom a nevytvorí sa žiadny nový zoznam. Vracia sa žiadne . V tomto príklade používame funkciu aktualizácie na zlúčenie dvoch slovníkov.

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

Výkon:



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

Časová zložitosť: O(n)
Pomocný priestor: O(1)

Operátor rozbaľovania Pythonu

Použitie ** [dvojitá hviezdička] je skratka, ktorá vám umožňuje odovzdať viac argumentov funkcii priamo pomocou slovníka. Ďalšie informácie nájdete v časti **kwargs v Pythone . Pomocou toho najskôr prejdeme všetky prvky prvého slovníka do tretieho a potom prenesieme druhý slovník do tretieho. Toto nahradí duplicitné kľúče prvého slovníka.

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

Výkon
{'a': 10, 'b': 8, 'd': 6, 'c': 4}>

Časová zložitosť: O(1)
Pomocná zložitosť: O(n)



Zlúčiť slovníky Pythonu pomocou | v Pythone 3.9

V najnovšej aktualizácii pythonu teraz môžeme použiť | operátora na zlúčenie dvoch slovníkov. Je to veľmi pohodlný spôsob spájania slovníkov. V tomto príklade používame | operátora na zlúčenie dvoch slovníkov.

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>

Výkon:

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

Časová zložitosť: O(1)
Pomocný priestor: O(N)

vstup java

Použitie cyklu for a metódy keys().

V tomto príklade používame slučku a kľúč() metóda na zlúčenie dvoch slovníkov.

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>

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

Zlúčiť slovníky Pythonu pomocou triedy ChainMap

V tomto príklade zlučujeme slovníky v Pythone pomocou vstavaného ChainMap triedy z zbierky modul. Táto trieda vám umožňuje vytvoriť jeden pohľad na viacero slovníkov a všetky aktualizácie alebo zmeny vykonané v ChainMap sa prejavia v základných slovníkoch.

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>

Výkon
1 3 5 6>

Zlúčiť dva slovníky v Pythone pomocou konštruktora dict:

V tomto príklade používame konštruktor dict na zlúčenie dvoch slovníkov.

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

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

Časová zložitosť: O(N)
Pomocný priestor: O(N)

Zlučovacie slovníky Pythonu pomocou konštruktora dict() a operátora spojenia (|)

Táto metóda používa konštruktor dict() s operátorom únie (|) na zlúčenie dvoch slovníkov. Operátor únie kombinuje kľúče a hodnoty dvoch slovníkov a všetky spoločné kľúče v týchto dvoch slovníkoch preberajú hodnotu z druhého slovníka.

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

Výkon
{'d': 6, 'b': 8, 'c': 4, 'a': 10}>

Časová zložitosť: O(n), kde n je celkový počet párov kľúč – hodnota v oboch slovníkoch.
Pomocný priestor: O(n), kde n je celkový počet párov kľúč – hodnota v oboch slovníkoch

Zlúčenie dvoch slovníkov v Pythone pomocou funkcie Redukovať ():

V tomto príklade zlučujeme dva slovníky pomocou funkcie reduction(). V tejto metóde definujeme funkciu zlúčenia, potom vezme dva slovníky ako argumenty a vráti ich zlúčenie.

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

Výkon
{'a': 10, 'b': 8, 'd': 6, 'c': 4}>

Časová zložitosť :O(n), kde n je počet slovníkov v zozname dict_list.
Pomocná zložitosť : O (m), kde m je celkový počet párov kľúč – hodnota vo všetkých slovníkoch.