dictA = {'A1': 1, 'A2': 1}
dictB = {'B1': 1, 'B2': 1}
# ---(Wörterbücher kombinieren&Element hinzufügen)---
# => {'key1': 1, 'key2': 1, 'A1': 1, 'A2': 1, 'B1': 1, 'B2': 1}
des Weiteren,
Ich möchte eine effiziente Schreibmethode einführen, um diese zu realisieren.
Dies kann teilweise mit `.update ()`
und zusätzlicher Notation im Wörterbuch erreicht werden.
dictA.update(dictB)
dictA['key1'] = 1
dictA['key2'] = 1
new_dict = dictA
print(new_dict)
# => {'A1': 1, 'A2': 1, 'B1': 1, 'B2': 1, 'key1': 1, 'key2': 1}
Das ursprüngliche Diktat ist weg. (Wegen des Hinzufügens von Elementen (destruktive Änderungen) zu dictA)
print(dictA)
# => {'A1': 1, 'A2': 1, 'B1': 1, 'B2': 1, 'key1': 1, 'key2': 1}
Wenn der Schlüssel dupliziert wird, wird der Wert überschrieben. Dies kann zu unbeabsichtigtem Verhalten führen (Fehler verursachen).
dictA = {'key': 'dictA'}
dictB = {'key': 'dictB'}
dictA.update(dictB)
print(dictA)
# => {'key': 'dictB'}
Erstellen Sie ein neues Wörterbuch, indem Sie Werte an die Schlüsselwortargumente der Funktion dict übergeben, ohne sich Gedanken über das Zusammenfügen oder Hinzufügen von Elementen machen zu müssen. Eine beliebige Anzahl ist möglich.
new_dict = dict(
key1=1,
key2=1,
**dictA,
**dictB,
)
print(new_dict)
# => {'key1': 1, 'key2': 1, 'A1': 1, 'A2': 1, 'B1': 1, 'B2': 1}
Das ursprüngliche Wörterbuch bleibt unverändert, da es sich um einen zerstörungsfreien Prozess handelt.
new_dict['keyA1'] = 5
print(new_dict['keyA1'])
# => 5
print(dictA['keyA1'])
# => 1
Wenn Duplikate vorhanden sind, tritt ein TypeError auf, sodass Sie vermeiden können, unbeabsichtigte Werte zu überschreiben. Bei doppelten Schlüsseln im Wörterbuch und allen explizit geschriebenen Schlüsselwortargumenten tritt ein Fehler auf.
dictA = {'key': 'dictA'}
dictB = {'key': 'dictB'}
new_dict = dict(
key='A',
**dictA,
**dictB,
)
# => TypeError: type object got multiple values for keyword argument 'key'
Es wurde gesagt, dass Sie Wörterbücher kombinieren und Elemente sicher und präzise hinzufügen können, wenn Sie sie mit der Diktierfunktion neu erstellen!
Recommended Posts