logo

Python | Sammenlægning af to ordbøger

I Python er en ordbog en datastruktur, der indeholder elementet i nøgleværdi-parret, hvori nøgler bruges til at få adgang til værdierne i ordbogen. Python har nogle indbyggede ordbøger som defaultdict. I denne artikel vil vi se forskellige måder at flette to ordbøger på.

tegn til streng java

Eksempel



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

Sammenlægning af to ordbøger i Python

Der er forskellige måder, hvorpå Ordbøger kan flettes ved at bruge forskellige funktioner og konstruktører i Python. Nedenfor er nogle af følgende måder:

  • Ved brug af update()
  • Ved brug af udpakningsoperatør
  • Brug af fletning | operatør
  • Brug af løkker og nøgler() metode
  • Bruger dict constructor
  • Brug af dict()-konstruktøren med unionsoperatoren (|)
  • Ved brug af reducere()

Python opdatering()

Ved at bruge metoden update() i Python kan en liste flettes ind i en anden. Men i denne bliver den anden liste flettet ind i den første liste, og der oprettes ingen ny liste. Det vender tilbage Ingen . I dette eksempel bruger vi opdateringsfunktionen til at flette to ordbøger.

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

Produktion:



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

Tidskompleksitet: På)
Hjælpeplads: O(1)

Python-udpakningsoperatør

Brug af ** [dobbeltstjerne] er en genvej, der giver dig mulighed for at sende flere argumenter til en funktion direkte ved hjælp af en ordbog. For mere information se **kwargs i Python . Ved at bruge dette overfører vi først alle elementerne i den første ordbog til den tredje og derefter overfører vi den anden ordbog til den tredje. Dette vil erstatte dubletnøglerne i den første ordbog.

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

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

Tidskompleksitet: O(1)
Hjælpekompleksitet: På)



Python Flet ordbøger ved hjælp af | i Python 3.9

I den seneste opdatering af python kan vi nu bruge | operatør for at flette to ordbøger. Det er en meget praktisk metode til at flette ordbøger. I dette eksempel bruger vi | operatør for at flette to ordbøger.

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>

Produktion:

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

Tidskompleksitet: O(1)
Hjælpeplads: PÅ)

Brug for loop og keys() metode

I dette eksempel bruger vi loop og nøgle() metode til at flette to ordbøger.

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

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

Python Merge Ordbøger ved hjælp af ChainMap Class

I dette eksempel fusionerer vi ordbøger i Python ved at bruge den indbyggede Kædekort klasse fra samlinger modul. Denne klasse giver dig mulighed for at oprette en enkelt visning af flere ordbøger, og eventuelle opdateringer eller ændringer foretaget i ChainMap vil blive afspejlet i de underliggende ordbøger.

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>

Produktion
1 3 5 6>

Flet to ordbøger i Python ved hjælp af dict-konstruktør:

I dette eksempel bruger vi dict constructor til at flette to ordbøger.

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

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

Tidskompleksitet: PÅ)
Hjælpeplads: PÅ)

gør mens du er i java

Python Merge Dictionaries ved hjælp af dict()-konstruktør og unionsoperator (|)

Denne metode bruger dict()-konstruktøren med unionsoperatoren (|) til at flette to ordbøger. Fagforeningsoperatøren kombinerer nøglerne og værdierne for de to ordbøger, og eventuelle fælles nøgler i de to ordbøger tager værdien fra den anden ordbog.

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

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

Tidskompleksitet: O(n), hvor n er det samlede antal nøgleværdi-par i begge ordbøger.
Hjælpeplads: O(n), hvor n er det samlede antal nøgleværdi-par i begge ordbøger

Python flet to ordbøger ved hjælp af reduce():

I dette eksempel fusionerer vi to ordbøger ved hjælp af reduce()-funktionen. I denne metode definerer vi en fletfunktion, tager dernæst to ordbøger som argumenter og returnerer deres fletning.

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

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

Tidskompleksitet :O(n), hvor n er antallet af ordbøger i dict_list listen.
Hjælpekompleksitet: O(m), hvor m er det samlede antal nøgleværdi-par i alle ordbøgerne.