Neulich wurde PEP 584 (Add Union Operators To Dict) Final Commit / python / peps / pull / 1440) Ich habe es gesehen. Also werde ich diesmal PEP 584 lesen.
d1.update (d2)
d1 neu schreibt, gibt es Fälle, in denen eine temporäre Variable vorbereitet wird, und da es sich nicht um einen Ausdruck handelt, kann sie nicht als Parameter verwendet werden.{** d1, ** d2}
ist nicht gutcollection.ChainMap
ist geringfügig und hat das Problem, d1 neu zu schreibendict (d1, ** d2)
führt zu einem Fehler, wenn der Schlüssel keine Zeichenfolge ist|
, Wörterbücher zu kombinierenKombinieren Sie die beiden Wörterbücher mit d1 | d2
. Wenn Sie denselben Schlüssel haben, wird der Inhalt des Wörterbuchs auf der rechten Seite überschrieben, sodass er nicht austauschbar ist (die Reihenfolge der Schlüssel im neuen Wörterbuch ändert sich ebenfalls).
>>> d = {'spam': 1, 'eggs': 2, 'cheese': 3}
>>> e = {'cheese': 'cheddar', 'aardvark': 'Ethel'}
>>> d | e
{'spam': 1, 'eggs': 2, 'cheese': 'cheddar', 'aardvark': 'Ethel'}
>>> e | d
{'aardvark': 'Ethel', 'spam': 1, 'eggs': 2, 'cheese': 3}
Es unterstützt auch den Operator | =
.
>>> d |= e
>>> d
{'spam': 1, 'eggs': 2, 'cheese': 'cheddar', 'aardvark': 'Ethel'}
d = dict (d1); d.update (d2)
wurde schon oft geschrieben, also bin ich glücklichRecommended Posts