Zum Inhalt springen

Python-Wörterbücher: Die copy()-Methode erklärt

In diesem Artikel diskutieren wir die copy()-Methode für Python-Dictionaries, ihre Anwendung und die Vorteile, die sie im Vergleich zu anderen Methoden zur Dictionary-Manipulation bietet. Außerdem behandeln wir einige Beispiele und Anwendungsfälle der copy()-Methode, damit Sie verstehen können, wie sie in Ihren Python-Programmen nützlich sein kann.

Was ist ein Dictionary in Python?

Ein Dictionary in Python ist eine geordnete Sammlung von Schlüssel-Wert-Paaren (die Einfügereihenfolge wird in Python 3.7+ beibehalten). Jeder Schlüssel im Dictionary ist einem eindeutigen Wert zugeordnet. Dictionaries werden verwendet, um Daten in Schlüssel-Wert-Paaren zu speichern, und sind sehr nützlich für schnelle Suchen und Manipulationen von Daten.

Was ist die copy()-Methode in Python-Dictionaries?

Die copy()-Methode in Python-Dictionaries erstellt eine flache Kopie des Dictionaries. Das neue Dictionary ist auf der obersten Ebene unabhängig, d. h., das Hinzufügen oder Entfernen von Schlüsseln in der Kopie wirkt sich nicht auf das ursprüngliche Dictionary aus. Verschachtelte veränderbare Objekte werden jedoch zwischen beiden Dictionaries geteilt.

So verwenden Sie die copy()-Methode in Python-Dictionaries?

Die Syntax zur Verwendung der copy()-Methode ist unkompliziert. Hier ist ein Beispiel:

Erstellen Sie eine flache Kopie eines Dictionaries in Python

python
original_dict = {'key1': 'value1', 'key2': 'value2'}
new_dict = original_dict.copy()
print(new_dict)

Im obigen Beispiel ist original_dict das Dictionary, das wir kopieren möchten, und new_dict ist die neue Kopie des Dictionaries. Wir rufen die copy()-Methode auf dem ursprünglichen Dictionary auf und weisen das Ergebnis einer neuen Variable zu, um ein neues Dictionary zu erstellen, das eine flache Kopie des ursprünglichen Dictionaries ist.

Hinweis: Sie können auch eine flache Kopie mit dict(original_dict) oder copy.copy(original_dict) aus dem copy-Modul erstellen.

Vorteile der copy()-Methode in Python-Dictionaries

Die copy()-Methode bietet im Vergleich zu anderen Methoden zur Dictionary-Manipulation in Python mehrere Vorteile. Hier sind einige der wichtigsten Vorteile:

Unabhängige Kopie

Die copy()-Methode erstellt ein neues Dictionary-Objekt. Schlüssel und unveränderliche Werte auf der obersten Ebene sind unabhängig, sodass das Hinzufügen, Entfernen oder Aktualisieren in der neuen Kopie das ursprüngliche Dictionary nicht beeinflusst. Dies erleichtert die Manipulation des Dictionaries, ohne sich um Nebenwirkungen oder das versehentliche Ändern der Originaldaten sorgen zu müssen.

Flache Kopie

Die copy()-Methode erstellt eine flache Kopie, d. h., sie kopiert Referenzen auf verschachtelte veränderbare Objekte (wie Listen oder andere Dictionaries). Wenn Sie ein verschachteltes Objekt in der neuen Kopie ändern, treten diese Änderungen auch im ursprünglichen Dictionary auf. Dieses Verhalten ist wichtig zu verstehen, wenn Sie mit komplexen Datenstrukturen arbeiten.

Lesbarkeit

Die Verwendung der copy()-Methode macht Ihren Code lesbarer und verständlicher. Wenn Sie die copy()-Methode verwenden, ist klar, dass Sie eine neue Kopie des Dictionaries erstellen. Dies macht Ihren Code selbsterklärender und wartungsfreundlicher.

Beispiele zur copy()-Methode in Python-Dictionaries

Schauen wir uns einige Beispiele zur copy()-Methode an, um zu verstehen, wie sie in Ihren Python-Programmen nützlich sein kann.

Beispiel 1: Kopieren eines Dictionaries

In diesem Beispiel erstellen wir eine neue Kopie eines bestehenden Dictionaries mithilfe der copy()-Methode.

Aktualisieren von Primärvariablen innerhalb einer Kopie eines Python-Dictionaries

python
original_dict = {'key1': 'value1', 'key2': 'value2'}
new_dict = original_dict.copy()

# Add a new key-value pair to the new dictionary
new_dict['key3'] = 'value3'

print(original_dict)
# Expected output: {'key1': 'value1', 'key2': 'value2'}
print(new_dict)
# Expected output: {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

Beispiel 2: Aktualisieren einer flachen Kopie

In diesem Beispiel erstellen wir eine neue Kopie eines bestehenden Dictionaries und ändern anschließend ein veränderbares Objekt innerhalb der neuen Kopie.

Aktualisieren von veränderbaren Variablen innerhalb einer Kopie eines Python-Dictionaries

python
original_dict = {'key1': [1, 2, 3], 'key2': 'value2'}
new_dict = original_dict.copy()
new_dict['key1'][0] = 4

print(original_dict)
# Expected output: {'key1': [4, 2, 3], 'key2': 'value2'}
print(new_dict)
# Expected output: {'key1': [4, 2, 3], 'key2': 'value2'}

Beispiel 3: Erstellen einer tiefen Kopie

In diesem Beispiel erstellen wir eine neue tiefe Kopie eines bestehenden Dictionaries mithilfe der deepcopy()-Methode aus dem copy-Modul.

Tiefe Kopie in Python

python
import copy

original_dict = {'key1': [1, 2, 3], 'key2': 'value2'}
new_dict = copy.deepcopy(original_dict)

# Update the value of the mutable object in the new dictionary
new_dict['key1'][0] = 4

print(original_dict)
# Expected output: {'key1': [1, 2, 3], 'key2': 'value2'}
print(new_dict)
# Expected output: {'key1': [4, 2, 3], 'key2': 'value2'}

In diesem Beispiel verwenden wir die deepcopy()-Methode aus dem copy-Modul, um eine neue tiefe Kopie des ursprünglichen Dictionaries zu erstellen. Eine tiefe Kopie erstellt eine neue Kopie aller verschachtelten veränderbaren Objekte im Dictionary, anstatt nur Referenzen darauf zu erstellen. Das bedeutet, dass Änderungen an den verschachtelten Objekten im neuen Dictionary das ursprüngliche Dictionary nicht beeinflussen.

Fazit

Die copy()-Methode bietet eine schnelle Möglichkeit, eine flache Kopie eines Dictionaries zu erstellen, wobei die Unabhängigkeit auf der obersten Ebene erhalten bleibt, während Referenzen auf verschachtelte veränderbare Objekte geteilt werden. Für eine vollständige Isolierung verschachtelter Strukturen verwenden Sie copy.deepcopy() aus dem copy-Modul. Das Verständnis des Unterschieds zwischen flacher und tiefer Kopierung hilft dabei, unerwartete Nebenwirkungen bei der Manipulation von Dictionaries in Ihren Python-Programmen zu vermeiden.

Praxis

Welche der folgenden Methoden kann zum Kopieren von Python-Dictionaries verwendet werden?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.