logo

Python | Slå sammen to ordbøker

I Python er en ordbok en datastruktur som inneholder elementet i nøkkelverdi-paret der nøkler brukes for å få tilgang til verdiene i ordboken. Python har noen innebygde ordbøker som defaultdict. I denne artikkelen vil vi se ulike måter å slå sammen to ordbøker på.

vis skjulte apper

Eksempel



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

Slå sammen to ordbøker i Python

Det er forskjellige måter Ordbøker kan slås sammen ved å bruke ulike funksjoner og konstruktører i Python. Nedenfor er noen følgende måter:

  • Ved hjelp av Oppdater()
  • Ved hjelp av utpakkingsoperatør
  • Bruke flette | operatør
  • Ved hjelp av løkker og nøkler() metode
  • Bruker dict constructor
  • Bruke dict()-konstruktøren med unionsoperatøren (|)
  • Ved hjelp av redusere()

Python-oppdatering()

Ved å bruke metoden Oppdater() i Python kan en liste slås sammen til en annen. Men i denne blir den andre listen slått sammen til den første listen og ingen ny liste opprettes. Den kommer tilbake Ingen . I dette eksemplet bruker vi oppdateringsfunksjonen til å slå sammen to ordbøker.

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

Produksjon:



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

Tidskompleksitet: På)
Ekstra plass: O(1)

Python utpakkingsoperatør

Å bruke ** [dobbeltstjerne] er en snarvei som lar deg sende flere argumenter til en funksjon direkte ved hjelp av en ordbok. For mer informasjon se **kwargs i Python . Ved å bruke denne sender vi først alle elementene i den første ordboken inn i den tredje og deretter sender vi den andre ordboken inn i den tredje. Dette vil erstatte de dupliserte nøklene til den første ordboken.

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

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

Tidskompleksitet: O(1)
Hjelpekompleksitet: På)



Python Slå sammen ordbøker med | i Python 3.9

I den siste oppdateringen av python nå kan vi bruke | operatør for å slå sammen to ordbøker. Det er en veldig praktisk metode for å slå sammen ordbøker. I dette eksemplet bruker vi | operatør for å slå sammen to ordbøker.

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>

Produksjon:

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

Tidskompleksitet: O(1)
Ekstra plass: PÅ)

Bruker metoden for loop og keys().

I dette eksemplet bruker vi loop og nøkkel() metode for å slå sammen to ordbøker.

hvordan konvertere streng til heltall
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>

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

Python Merge-ordbøker ved å bruke ChainMap Class

I dette eksemplet slår vi sammen ordbøker i Python ved å bruke den innebygde Kjedekart klasse fra samlinger modul. Denne klassen lar deg lage en enkelt visning av flere ordbøker, og eventuelle oppdateringer eller endringer i kjedekartet vil bli reflektert i de underliggende ordbøkene.

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>

Produksjon
1 3 5 6>

Slå sammen to ordbøker i Python ved å bruke dict-konstruktør:

I dette eksemplet bruker vi dict constructor for å slå sammen to ordbøker.

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

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

Tidskompleksitet: PÅ)
Hjelpeplass: PÅ)

utsikt og tabeller

Python Merge Dictionaries ved å bruke dict()-konstruktør og unionsoperatør (|)

Denne metoden bruker dict()-konstruktøren med unionsoperatoren (|) for å slå sammen to ordbøker. Fagforeningsoperatøren kombinerer nøklene og verdiene til de to ordbøkene, og eventuelle fellesnøkler i de to ordbøkene tar verdien fra den andre ordboken.

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

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

Tidskompleksitet: O(n), hvor n er det totale antallet nøkkelverdi-par i begge ordbøkene.
Hjelpeplass: O(n), hvor n er det totale antallet nøkkelverdi-par i begge ordbøkene

Python Slå sammen to ordbøker ved å bruke redusering():

I dette eksemplet slår vi sammen to ordbøker ved å bruke redusere()-funksjonen. I denne metoden definerer vi en sammenslåingsfunksjon, tar deretter to ordbøker som argumenter og returnerer deres sammenslåing.

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

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

Tidskompleksitet :O(n), hvor n er antall ordbøker i dict_list-listen.
Hjelpekompleksitet: O(m), der m er det totale antallet nøkkelverdi-par i alle ordbøkene.