Python Dictionaries kopieren (engl.: Copy Dictionaries): Das Kopieren von Dictionaries in Python kann auf verschiedene Arten erfolgen, um sicherzustellen, dass Sie eine neue Instanz des Dictionaries erhalten, ohne die Originaldaten zu beeinträchtigen. In diesem Artikel werden die gängigsten Methoden zum Kopieren von Dictionaries beschrieben.
1. Verwendung der copy()-Methode
Die einfachste Methode zum Kopieren eines Dictionaries ist die Verwendung der copy()
-Methode. Diese Methode erstellt eine flache Kopie des Dictionaries, sodass Änderungen an der Kopie das Original nicht beeinflussen.
Beispiel
mein_dict = {
"Name": "Max",
"Alter": 25,
"Stadt": "Berlin"
}
# Kopieren des Dictionaries
kopie_dict = mein_dict.copy()
print(kopie_dict) # Ausgabe: {'Name': 'Max', 'Alter': 25, 'Stadt': 'Berlin'}
2. Verwendung des dict() Konstruktors
Eine weitere Möglichkeit, ein Dictionary zu kopieren, besteht darin, den dict()
-Konstruktor zu verwenden. Diese Methode erzeugt ebenfalls eine flache Kopie des Dictionaries.
Beispiel
mein_dict = {
"Name": "Max",
"Alter": 25,
"Stadt": "Berlin"
}
# Kopieren des Dictionaries mit dict()
kopie_dict = dict(mein_dict)
print(kopie_dict) # Ausgabe: {'Name': 'Max', 'Alter': 25, 'Stadt': 'Berlin'}
3. Verwendung von Dictionary Comprehension
Sie können auch Dictionary Comprehension verwenden, um eine neue Kopie zu erstellen. Dies gibt Ihnen die Möglichkeit, während des Kopiervorgangs Änderungen vorzunehmen.
Beispiel
mein_dict = {
"Name": "Max",
"Alter": 25,
"Stadt": "Berlin"
}
# Kopieren mit Dictionary Comprehension
kopie_dict = {schluessel: wert for schluessel, wert in mein_dict.items()}
print(kopie_dict) # Ausgabe: {'Name': 'Max', 'Alter': 25, 'Stadt': 'Berlin'}
4. Tiefes Kopieren mit copy Modul
Wenn Ihr Dictionary geschachtelte Objekte (wie Listen oder andere Dictionaries) enthält, ist es besser, ein tiefes Kopieren durchzuführen. Dies können Sie mit dem copy
-Modul erreichen, das eine deepcopy()
-Methode bereitstellt.
Beispiel
import copy
mein_dict = {
"Name": "Max",
"Alter": 25,
"Hobbys": ["Lesen", "Reisen"],
"Adresse": {
"Stadt": "Berlin",
"Postleitzahl": 10115
}
}
# Tiefes Kopieren des Dictionaries
kopie_dict = copy.deepcopy(mein_dict)
# Änderungen an der Kopie
kopie_dict["Hobbys"].append("Schwimmen")
kopie_dict["Adresse"]["Postleitzahl"] = 10243
print(kopie_dict) # Ausgabe: {'Name': 'Max', 'Alter': 25, 'Hobbys': ['Lesen', 'Reisen', 'Schwimmen'], 'Adresse': {'Stadt': 'Berlin', 'Postleitzahl': 10243}}
print(mein_dict) # Ausgabe bleibt unverändert: {'Name': 'Max', 'Alter': 25, 'Hobbys': ['Lesen', 'Reisen'], 'Adresse': {'Stadt': 'Berlin', 'Postleitzahl': 10115}}
Häufig gestellte Fragen
Wie kann ich ein flaches Dictionary kopieren?
Verwenden Sie die copy()
-Methode oder den dict()
-Konstruktor, um eine flache Kopie zu erstellen.
Was ist der Unterschied zwischen flachen und tiefen Kopien?
Eine flache Kopie erstellt eine neue Instanz des Dictionaries, während die Referenzen zu den inneren Objekten gleich bleiben. Bei einer tiefen Kopie werden alle inneren Objekte ebenfalls kopiert.
Wie kann ich ein geschachteltes Dictionary kopieren?
Verwenden Sie die deepcopy()
-Methode aus dem copy
-Modul, um sicherzustellen, dass alle verschachtelten Objekte ebenfalls kopiert werden.