Warum ändert .copy() in einem verschachtelten Python-Wörterbuch immer noch das ursprüngliche Wörterbuch? [Duplikat]Python

Python-Programme
Anonymous
 Warum ändert .copy() in einem verschachtelten Python-Wörterbuch immer noch das ursprüngliche Wörterbuch? [Duplikat]

Post by Anonymous »

Ich versuche, ein verschachteltes Wörterbuch in Python zu kopieren, aber wenn ich die Kopie ändere, wird auch das ursprüngliche Wörterbuch geändert.

Code: Select all

original = {
"user": {
"name": "Alex",
"skills": ["python", "sql"]
}
}

copy_dict = original.copy()

copy_dict["user"]["skills"].append("django")

print("Original:", original)
print("Copy:", copy_dict)
und die Ausgabe des obigen Codes ist

Code: Select all

Original: {'user': {'name': 'Alex', 'skills': ['python', 'sql', 'django']}}
Copy: {'user': {'name': 'Alex', 'skills': ['python', 'sql', 'django']}}
Ich habe erwartet, dass der neue „django“-Wert nur in copy_dict erscheint, aber er kommt in beiden vor.
Warum wirkt sich .copy() in diesem Fall auf das Originalwörterbuch aus?
Wissen Sie, was der Fehler im obigen Programm ist?
Soll ich deepcopy() verwenden, oder gibt es einen anderen empfohlenen Ansatz?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post