Inhaltsverzeichnis
- Dictionaries in Python 2.7 zusammenführen
- Dictionary-Zusammenführung in Python 3.5+
- Vergleich und Best Practices
Dictionaries in Python 2.7 zusammenführen
Python 2.7 bietet nicht die elegante Dictionary-Zusammenführungsfunktionalität späterer Versionen. Wir verlassen uns hauptsächlich auf die update()
-Methode oder, seltener, auf die Dictionary-Verkettung.
Verwendung von update()
Die update()
-Methode modifiziert das Dictionary, auf das sie angewendet wird, und fügt Schlüssel-Wert-Paare aus einem anderen Dictionary hinzu. Vorhandene Schlüssel werden durch Werte aus dem zweiten Dictionary überschrieben.
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict1.update(dict2)
print(dict1) # Ausgabe: {'a': 1, 'b': 3, 'c': 4}
Dictionary-Verkettung
Obwohl möglich, ist dieser Ansatz weniger effizient und erfordert die Erstellung eines neuen Dictionaries. Er ist im Allgemeinen update()
unterlegen.
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
merged_dict = dict(dict1.items() + dict2.items())
print(merged_dict) # Ausgabe: {'a': 1, 'b': 3, 'c': 4}
#Alternative mit dict.copy():
merged_dict = dict1.copy()
merged_dict.update(dict2)
print(merged_dict) #Ausgabe: {'a': 1, 'b': 3, 'c': 4}
Dictionary-Zusammenführung in Python 3.5+
Python 3.5 führte das deutlich sauberere Dictionary-Auspacken mit dem **
-Operator ein. Dies erstellt ein neues Dictionary, das alle Schlüssel-Wert-Paare kombiniert. Doppelte Schlüssel werden durch den Wert aus dem rechtsexten Dictionary aufgelöst.
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
merged_dict = {**dict1, **dict2}
print(merged_dict) # Ausgabe: {'a': 1, 'b': 3, 'c': 4}
Dies ist aufgrund seiner Lesbarkeit und der Vermeidung von Modifikationen vor Ort im Allgemeinen die bevorzugte Methode.
Vergleich und Best Practices
Die optimale Methode hängt von Ihrer Python-Version und Ihrem Codierungsstil ab. Für Python 2.7 wird update()
empfohlen. Für Python 3.5 und höher bietet das Dictionary-Auspacken (**
) eine bessere Lesbarkeit und vermeidet potenzielle Nebeneffekte. In beiden Fällen überschreiben spätere Dictionaries die Werte doppelter Schlüssel. Für eine komplexere Behandlung von Schlüsselkollisionen (z. B. das Kombinieren von Werten) müssen Sie eine benutzerdefinierte Logik implementieren.