Pythonissa sanakirja on tietorakenne, joka sisältää avain-arvo-parin elementin, jossa avaimilla päästään sanakirjan arvoihin. Python sisältää joitain sisäänrakennettuja sanakirjoja, kuten defaultdict. Tässä artikkelissa näemme erilaisia tapoja yhdistää kaksi sanakirjaa.
verkkoselaimen asetukset
Esimerkki
Input: dict1 = {'a': 10, 'b': 8} dict2 = {'d': 6, 'c': 4} Output: {'a': 10, 'b': 8, 'd': 6, 'c': 4}>Kahden sanakirjan yhdistäminen Pythonissa
On olemassa erilaisia tapoja, joilla Sanakirjat voidaan yhdistää käyttämällä erilaisia Pythonin funktioita ja rakentajia. Alla on joitain seuraavia tapoja:
- Käyttämällä päivittää()
- Käyttämällä purkuoperaattori
- Yhdistäminen | operaattori
- Käyttämällä silmukoita ja avaimet () menetelmä
- Sanomakonstruktorin käyttö
- Dict()-konstruktorin käyttäminen union-operaattorin kanssa (|)
- Käyttämällä vähentää()
Python-päivitys()
Käyttämällä menetelmää päivittää() Pythonissa yksi luettelo voidaan yhdistää toiseen. Mutta tässä toinen luettelo yhdistetään ensimmäiseen luetteloon, eikä uutta luetteloa luoda. Se palaa Ei mitään . Tässä esimerkissä käytämme päivitystoimintoa kahden sanakirjan yhdistämiseen.
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)> Lähtö:
None {'c': 4, 'a': 10, 'b': 8, 'd': 6}> Aika monimutkaisuus: Päällä)
Aputila: O(1)
Python-pakkauksen purkuoperaattori
** [kaksoistähti] on pikakuvake, jonka avulla voit välittää useita argumentteja funktiolle suoraan sanakirjan avulla. Katso lisätietoja **kwargs Pythonissa . Tätä käyttämällä siirrämme ensin kaikki ensimmäisen sanakirjan elementit kolmanteen ja sitten toisen sanakirjan kolmanteen. Tämä korvaa ensimmäisen sanakirjan kaksoisavaimet.
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)> Lähtö
{'a': 10, 'b': 8, 'd': 6, 'c': 4}> Aika monimutkaisuus: O(1)
Ylimääräinen monimutkaisuus: Päällä)
Pythonin yhdistämissanakirjat | Pythonissa 3.9
Pythonin uusimmassa päivityksessä voimme nyt käyttää | operaattori yhdistää kaksi sanakirjaa. Se on erittäin kätevä tapa yhdistää sanakirjoja. Tässä esimerkissä käytämme | operaattori yhdistää kaksi sanakirjaa.
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> Lähtö:
{'x': 10, 'a': 6, 'b': 4, 'y': 8}> Aika monimutkaisuus: O(1)
Aputila: PÄÄLLÄ)
For loop- ja keys()-menetelmän käyttäminen
Tässä esimerkissä käytämme silmukkaa ja avain() tapa yhdistää kaksi sanakirjaa.
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> Lähtö
{'x': 10, 'y': 8, 'a': 6, 'b': 4}> Python-yhdistyssanakirjat ChainMap-luokan avulla
Tässä esimerkissä yhdistämme Pythonin sanakirjoja käyttämällä sisäänrakennettua Ketjukartta luokasta alkaen kokoelmat moduuli. Tämän luokan avulla voit luoda yhden näkymän useista sanakirjoista, ja kaikki ChainMapiin tehdyt päivitykset tai muutokset näkyvät taustalla olevissa sanakirjoissa.
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> Lähtö
1 3 5 6>
Yhdistä kaksi sanakirjaa Pythonissa sanelukonstruktorin avulla:
Tässä esimerkissä käytämme dict konstruktoria kahden sanakirjan yhdistämiseen.
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))> Lähtö
{'x': 10, 'y': 8, 'a': 6, 'b': 4}> Aika monimutkaisuus: PÄÄLLÄ)
Aputila: PÄÄLLÄ)
Python-yhdistyssanakirjat käyttäen dict()-konstruktoria ja union-operaattoria (|)
Tämä menetelmä yhdistää kaksi sanakirjaa dict()-konstruktorin ja union-operaattorin (|) kanssa. Unioni-operaattori yhdistää kahden sanakirjan avaimet ja arvot, ja kaikki yhteiset avaimet kahdessa sanakirjassa ottavat arvon toisesta sanakirjasta.
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)> Lähtö
{'d': 6, 'b': 8, 'c': 4, 'a': 10}> Aika monimutkaisuus: O(n), jossa n on avainarvoparien kokonaismäärä molemmissa sanakirjoissa.
Aputila: O(n), missä n on avainarvoparien kokonaismäärä molemmissa sanakirjoissa
Python Yhdistä kaksi sanakirjaa käyttämällä reduction():
Tässä esimerkissä yhdistämme kaksi sanakirjaa käyttämällä vähennysfunktiota (). Tässä menetelmässä määritämme yhdistämisfunktion, joka ottaa kaksi sanakirjaa argumenteiksi ja palauttaa niiden yhdistämisen.
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.> Lähtö
{'a': 10, 'b': 8, 'd': 6, 'c': 4}> Aika monimutkaisuus :O(n), missä n on sanakirjojen määrä saneluluettelossa.
Ylimääräinen monimutkaisuus: O(m), missä m on avainarvoparien kokonaismäärä kaikissa sanakirjoissa.