Python Append Dictionary To Dictionary

Hallo, liebe Datenjongleure und Python-Enthusiasten! Setzt euch, nehmt euch einen Kaffee (oder ein Bier, ich urteile nicht), und lasst uns über etwas sprechen, das klingt wie ein Zaubertrick, aber eigentlich ganz einfach ist: Wie man ein Dictionary an ein anderes Dictionary anhängt. Ja, richtig gehört! Wir machen heute Dictionary-Fusion. Klingt doch nach einem Marvel-Film, oder? Aber keine Sorge, es gibt keine Explosionen oder genetisch veränderte Superhelden… höchstens Kopfschmerzen, wenn man es falsch macht. (Aber das verhindern wir ja!).
Also, stellt euch vor, ihr habt zwei Dictionaries. Eines ist eure Sammlung von Lieblings-Eissorten (schließlich ist Sommer!), das andere eure Sammlung von Lieblings-Pizza-Belägen. Was wäre, wenn ihr diese beiden Welten vereinen könntet? Eine Welt, in der es Pizza mit Stracciatella-Belag und Eis mit Salami-Geschmack gibt! (Okay, vielleicht nicht *ganz* so. Aber die Vorstellung ist doch amüsant, oder?).
Methode 1: Die klassische update()
Methode
Die einfachste und eleganteste Methode, um zwei Dictionaries zu verschmelzen, ist die update()
Methode. Sie ist wie ein freundlicher Zauberer, der einfach alles in den Hut wirft und… *puff*… ein neues, größeres Dictionary herauszaubert!.
Nehmen wir an, wir haben diese beiden Schönheiten:
eis_sorten = {"Vanille": "Der Klassiker", "Schokolade": "Für Schokoholics"}
pizza_belaege = {"Salami": "Der Standard", "Pilze": "Für Feinschmecker"}
Und jetzt kommt der magische Spruch:
eis_sorten.update(pizza_belaege)
print(eis_sorten)
Tada! Das Ergebnis ist ein Dictionary, das sowohl Eis-Sorten als auch Pizza-Beläge enthält. Achtung: Wenn es Schlüssel gibt, die in beiden Dictionaries vorkommen (zum Beispiel, wenn sowohl `eis_sorten` als auch `pizza_belaege` einen Eintrag für "Vanille" hätten), dann überschreibt der Wert aus dem Dictionary, das in update()
übergeben wird, den ursprünglichen Wert. In unserem Fall hätte Vanille plötzlich einen Pizza-Bezug!
Also, behaltet das im Hinterkopf. Es ist, als ob zwei Könige um dasselbe Territorium kämpfen. Nur einer kann gewinnen. Und meistens ist es der, der als letztes kommt.
Methode 2: Der **
Operator (Dictionary Unpacking)
Jetzt kommen wir zu etwas, das sich nach einem echten Zaubertrick anhört: Dictionary Unpacking mit dem **
Operator. Stellt euch vor, ihr habt ein Dictionary, und ihr könnt es einfach in seine Einzelteile zerlegen und diese Teile dann in ein neues Dictionary einfügen. Wie LEGO, nur mit Daten!
So geht’s:
eis_sorten = {"Vanille": "Der Klassiker", "Schokolade": "Für Schokoholics"}
pizza_belaege = {"Salami": "Der Standard", "Pilze": "Für Feinschmecker"}
vereintes_dictionary = {**eis_sorten, **pizza_belaege}
print(vereintes_dictionary)
Der **
Operator "entpackt" die Dictionaries `eis_sorten` und `pizza_belaege` und fügt ihre Schlüssel-Wert-Paare in ein neues Dictionary ein. Das Ergebnis ist dasselbe wie bei der update()
Methode, aber es ist vielleicht etwas cooler, weil es so aussieht, als würdet ihr ein bisschen programmieren, als wärt ihr ein Hacker in einem Hollywood-Film. (Okay, vielleicht übertreibe ich etwas. Aber ein bisschen Spaß muss sein!).
Auch hier gilt: Wenn es doppelte Schlüssel gibt, gewinnt derjenige, der zuletzt genannt wird. Also, in diesem Fall ist es wie beim Schlangestehen: Wer zuletzt kommt, mahlt zuerst (oder überschreibt zuerst, je nachdem, wie man es sieht).
Methode 3: Die Python 3.9 "|" Operator Magie
Ab Python 3.9 gibt es noch eine weitere, noch elegantere Möglichkeit, Dictionaries zu verschmelzen: den |
Operator (Dictionary Merge) und den |=
Operator (Dictionary Update). Sie sind wie die coolen, neuen Kids in der Nachbarschaft, die alles ein bisschen einfacher machen.
Hier ein Beispiel:
eis_sorten = {"Vanille": "Der Klassiker", "Schokolade": "Für Schokoholics"}
pizza_belaege = {"Salami": "Der Standard", "Pilze": "Für Feinschmecker"}
vereintes_dictionary = eis_sorten | pizza_belaege
print(vereintes_dictionary)
Der |
Operator erstellt ein neues Dictionary, während der |=
Operator das Dictionary auf der linken Seite verändert. Das ist wie der Unterschied zwischen einem Klon und einer Verjüngungskur. Beides führt zum gleichen Ergebnis (ein größeres Dictionary), aber auf unterschiedliche Weise.
Auch hier gilt die Regel mit den doppelten Schlüsseln. Der Wert aus dem Dictionary auf der rechten Seite des Operators überschreibt den Wert aus dem Dictionary auf der linken Seite.
Fazit: Wählt eure Waffe!
So, da habt ihr es! Drei verschiedene Methoden, um zwei Dictionaries zu einem großen, glücklichen (oder vielleicht auch chaotischen) Dictionary zu vereinen. Egal, ob ihr die klassische update()
Methode, den coolen **
Operator oder die elegante Python 3.9-Magie bevorzugt, das Ziel ist dasselbe: Daten-Fusion!.
Denkt daran: Behaltet die Schlüssel im Auge! Doppelte Schlüssel können zu unerwarteten Ergebnissen führen (wie Pizza mit Eisgeschmack). Und jetzt geht raus und verschmelzt ein paar Dictionaries! Aber übertreibt es nicht. Sonst habt ihr am Ende ein Monster-Dictionary, das so unübersichtlich ist wie mein Schreibtisch nach einer durchzechten Programmiernacht. Viel Spaß!



