Python-Dictionary erweitern

Neema Muganga 30 Januar 2023
  1. Verwenden der Methode update() zum Erweitern eines Dictionaries in Python
  2. Verwenden des **-Operators zum Erweitern eines Python-Dictionaries
  3. Verwenden von Dictionaryverständnis zur Erweiterung eines Python-Dictionaries
  4. Mit collections.Chainmap ein Python-Dictionary erweitern
Python-Dictionary erweitern

Dieser Artikel zeigt dem Benutzer, wie man ein Python-Dictionary mit einem anderen Dictionary erweitert. Ein Dictionary ist ein Container mit Daten, die geändert werden können (veränderlich sind), und es speichert diese Daten in Form von Schlüssel-Wert-Paaren, Beispiel {key: ‘value’}.

Sie können ein Dictionary durch Verkettung um ein weiteres Element erweitern. Dies bedeutet, dass alle Schlüssel-Wert-Paare in einem Dictionary dem anderen hinzugefügt werden.

Verwenden der Methode update() zum Erweitern eines Dictionaries in Python

Die Methode update() ist eine der Methoden, die Python verwendet, um die Verkettung von Wörterbüchern zu implementieren. Dies geschieht durch Hinzufügen von Schlüssel-Wert-Paar-Elementen eines anderen Dictionaries am Ende des aktuellen Dictionaries.

Diese Methode ist besonders nützlich, wenn Sie ein Dictionary erweitern, das andere Schlüssel-Wert-Paare von einem anderen Dictionary enthält. Andernfalls werden mit update() die vorhandenen Werte im ersten Dictionary mit den Elementen im zweiten Dictionary überschrieben.

Einfacher ausgedrückt, überschreiben die Werte im zweiten definierten Dictionary die im ersten, da sie sich überschneiden.

first_dict = {"name": "Yolanda", "major": "Bsc Comp Science", "age": 23}
second_dict = {"name": "Beatrice", "major": "Bsc Comp Science", "age": 43}
first_dict.update(second_dict)
print(first_dict)

Ausgabe:

{'name': 'Beatrice', 'major': 'Bsc Comp Science', 'age': 43}

Die obigen Wörterbücher haben identische key-Werte, die name sind. Die Verkettung dieser Datenspeicher mit update() führt dazu, dass der Schlüsselwert name für das first_dict durch den von second_dict überschrieben wird. Daher führt dies zu einem einzigen Dictionary, wie es in der Ausgabe angezeigt wird.

Wenn jedoch ein Dictionary mit Werten erweitert wird, die noch nicht definiert sind, zeigt update() ein einzelnes Dictionary mit allen Schlüssel-Wert-Paaren aus beiden definierten Wörterbüchern an.

Beispiel:

dict_one = {'u':2, 'v':4, 'w':7}
dict_two = {'x':5, 'y':6, 'z': 8}
dict_one.update(dict_two)
print(dict_one)

Ausgabe:

{'u': 2, 'v': 4, 'w': 7, 'x': 5, 'y': 6, 'z': 8}

Verwenden des **-Operators zum Erweitern eines Python-Dictionaries

Die Verwendung des Operators asterik in einer einzeiligen Anweisung würde so aussehen:

dict(iterable, **kwargs)

iterable ist das erste definierte Dictionary, und der zweite Parameter ist das zweite Dictionary (Schlüsselwort-Parameter).

Beispiel

y = {"a": 5, "b": 6}
z = {"c": 7, "d": 9}

x = dict(y, **z)
print(x)

Ausgabe:

{'a': 5, 'b': 6, 'c': 7, 'd': 9}

Wenn es in den definierten Wörterbüchern eine Überlappung von Schlüssel-Wert-Paaren gibt, überlappen sich die Elemente des zweiten Dictionaries mit denen des ersten Dictionaries, wie wir es in update() gesehen haben.

Beispiel:

first_dict = {"a": 2, "b": 3, "c": 5}
second_dict = {"c": 4, "e": 6, "f": 7}
dictt = dict(first_dict, **second_dict)
print(dictt)

Ausgabe:

{'a': 2, 'b': 3, 'c': 4, 'e': 6, 'f': 7}

Es ist auch wichtig zu beachten, dass die Argumentnamen und die Schlüssel in den **dictionary-Elementen vom Datentyp String sein müssen. Andernfalls wird eine Typerror-Ausnahme angezeigt.

Beispiel:

first_dict = {"a": 2, "b": 3, "c": 5}
second_dict = {"c": 4, "e": 6, 7: 7}
dictt = dict(first_dict, **second_dict)
print(dictt)

Ausgabe:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: keywords must be strings

Verwenden von Dictionaryverständnis zur Erweiterung eines Python-Dictionaries

Diese Transformationsmethode wandelt ein Python-Dictionary in ein anderes um, indem Elemente in einem ursprünglichen Dictionary bedingt in ein neues aufgenommen werden. Es funktioniert ähnlich wie die Verwendung von Sternchen wie oben.

first_dict = {"a": 2, "b": 3, "c": 5}
second_dict = {"c": 4, "e": 6, "f": 7}
the_dictionary = {**first_dict, **second_dict}
print(the_dictionary)

Ausgabe:

{'a': 2, 'b': 3, 'c': 4, 'e': 6, 'f': 7}

Mit collections.Chainmap ein Python-Dictionary erweitern

Python stellt die ChainMap-Klasse bereit, die mehrere Wörterbücher zusammenfasst, um eine einzelne Ansicht zu bilden, die bei Bedarf aktualisiert werden kann. Wir importieren es aus dem Modul collections in Python.

Verwenden Sie diese Methode für eine schnellere Verkettung von Elementen. Dies liegt daran, dass chainmap nur die Ansichten der Wörterbücher verwendet; daher beinhaltet es kein Kopieren von Daten.

Darüber hinaus überschreibt es Schlüssel an jeder Stelle; Daher könnte man an der Ausgabe erkennen, was die Datenquelle ist.

Implementieren Sie es wie folgt:

from collections import ChainMap

first_dict = {"a": 2, "b": 3, "c": 5}
second_dict = {"c": 4, "e": 6, "f": 7}
a_dictionary = ChainMap(first_dict, second_dict)