Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich zwei Wörterbücher in Python effizient zusammenführen?

Wie kann ich zwei Wörterbücher in Python effizient zusammenführen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-22 17:24:11996Durchsuche

How Can I Efficiently Merge Two Dictionaries in Python?

Wie füge ich zwei Wörterbücher in einem einzigen Ausdruck in Python zusammen?

Problem:

Fügen Sie zwei Wörterbücher zu einem neuen Wörterbuch zusammen, wobei die Werte aus dem zweiten Wörterbuch diejenigen aus dem überschreiben zuerst.

Mögliche Lösungen:

In Python 3.9.0 oder höher:

z = x | y

In Python 3.5 oder Größer:

z = {**x, **y}

In Python 2, 3.4 oder niedriger:

def merge_two_dicts(x, y):
    z = x.copy()  # Start with keys and values of x
    z.update(y)  # Modifies z with keys and values of y
    return z

z = merge_two_dicts(x, y)

Erklärung:

1. Python 3.9.0 oder höher:

Der Pipe-Operator (|) wird in PEP-584 eingeführt und kombiniert beide Wörterbücher mithilfe der Wörterbuch-Entpacksyntax.

2. Python 3.5 oder höher:

Der doppelte Sternchenoperator (**) wird zum Entpacken des Wörterbuchs verwendet. Jedes Wörterbuch wird als Schlüssel-Wert-Paar entpackt und dann zu einem neuen Wörterbuch zusammengeführt.

3. Python 2, 3.4 oder niedriger:

In Python-Versionen vor 3.5 müssen Sie die Wörterbücher manuell mit den Methoden copy() und update() zusammenführen:

  • kopieren () erstellt eine flache Kopie des ursprünglichen Wörterbuchs.
  • update() aktualisiert das kopierte Wörterbuch mit den Schlüssel-Wert-Paaren aus dem zweiten Wörterbuch.

Hinweis:

Die Verwendung der Wörterbuch-Entpacksyntax ({x, y}) ist leistungsfähiger als die Verwendung des Diktats Verständnis ({k: v für d in (x, y) für k, v in d.items()}) oder die Funktion chain() von itertools.

Das obige ist der detaillierte Inhalt vonWie kann ich zwei Wörterbücher in Python effizient zusammenführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn