Python smelter sammen ordbøker

Python smelter sammen ordbøker
En ordbok refererer til en samling av uordnede gjenstander i nøkkelverdipar. Ordbøker er en populær og allsidig datastruktur som kan hjelpe med å lagre tilknyttede data.

I Python er ordbøker mutable. Dette betyr at vi kan endre verdiene til en ordbok etter erklæring.

Denne opplæringen vil lære deg forskjellige måter å 'sammenkoble' to ordbøker til en.

Bruke røroperatøren

I Python 3 og over kan du bruke Pipe (|) -operatøren til å sammenkoble to ordbøker i 1.

Et eksempel er vist nedenfor:

relational = 'mysql': 3306, 'PostgreSql': 5432, 'Oracle': 1521
Annet = 'Redis': 6379, 'Mongodb': 27017
Alt = relasjonell | annen
trykk (alle)

Koden over skal legge den andre ordboken til den første i rekkefølge av utseende.

Dette skal resultere i en ny ordbok som vist:

'MySQL': 3306, 'PostgreSql': 5432, 'Oracle': 1521, 'Redis': 6379, 'Mongodb': 27017

Bruker en for loop

Vi kan også legge til to ordbøker ved hjelp av en for sløyfe. Det fungerer ved å iterere over hver tast og verdi av den ene ordboken og legge den til den andre.

Et eksempel er vist nedenfor:

relational = 'mysql': 3306, 'PostgreSql': 5432, 'Oracle': 1521
Annet = 'Redis': 6379, 'Mongodb': 27017
Alt = relasjonell.Kopier () # Kopier matrisen
for k, v i andre.elementer ():
alle [k] = v
trykk (alle)

I eksemplet over begynner vi med å kopiere den første ordboken til ordboken vi ønsker å legge til. Vi sløyfe deretter over hver tast og verdi av den andre ordboken ved hjelp av elementene () -metoden.

Til slutt legger vi nøkkelen og verdien til den kopierte ordboken.

Den resulterende utgangen er som vist:

'MySQL': 3306, 'PostgreSql': 5432, 'Oracle': 1521, 'Redis': 6379, 'Mongodb': 27017

Bruke ** operatøren

** Kwargs -operatøren i Python lar oss gi et hvilket som helst antall argumenter til en funksjon. Derfor kan vi bruke dette trikset til å pakke ut ordbøker til et nytt dikter.

Et eksempel er illustrert nedenfor:

relational = 'mysql': 3306, 'PostgreSql': 5432, 'Oracle': 1521
Annet = 'Redis': 6379, 'Mongodb': 27017
alle = ** relasjonell, ** annet
trykk (alle)

Koden over skal returnere:

'MySQL': 3306, 'PostgreSql': 5432, 'Oracle': 1521, 'Redis': 6379, 'Mongodb': 27017

Bruke oppdateringsmetoden

Vi kan også bruke Update () -metoden i Python -ordbøker for å slå sammen to eller flere ordbøker.

Et eksempelbruk vises nedenfor:

relational = 'mysql': 3306, 'PostgreSql': 5432, 'Oracle': 1521
Annet = 'Redis': 6379, 'Mongodb': 27017
Alt = relasjonell.kopiere()
alle.oppdatering (annet)
trykk (alle)

I eksemplet over begynner vi med å kopiere den første ordboken. Dette hjelper oss å forhindre overskriving av den første ordboken.

Ved hjelp av ChainMap -metoden

Vi kan også bruke ChainMap -metoden fra samlingsmodulen for å slå sammen to ordbøker.

ChainMap -funksjonen lar oss gruppere to eller flere ordbøker i en enkelt oppdaterbar visning.

Et eksempel er som vist:

Fra samlinger importer kjedemap
All = ChainMap (Relational, annet)
trykk (alle)

Chainmap skal ta ordbøkene som parametere og returnerer en sammenslått ordbok som vist:

ChainMap ('MySql': 3306, 'PostgreSql': 5432, 'Oracle': 1521, 'Redis': 6379, 'Mongodb': 27017)

Merk at den resulterende typen ikke er en innfødt Python -ordbok, men en klasse.samlinger.Kjedemaptype.

Konklusjon

I denne artikkelen dytter vi dypt inn i forskjellige metoder for å slå sammen to eller flere ordbøker i Python.