Middle+
Μίλησέ μου για το module copy στην Python. Ποια είναι η διαφορά μεταξύ copy και deepcopy;
sobes.tech AI
Απάντηση από AI
Το module copy στην Python παρέχει λειτουργίες για τη δημιουργία αντιγράφων αντικειμένων. Οι κύριες λειτουργίες:
copy.copy(obj)— επιφανειακό αντίγραφο.copy.deepcopy(obj)— βαθύ αντίγραφο.
Διαφορά μεταξύ copy και deepcopy:
- Το επιφανειακό αντίγραφο δημιουργεί ένα νέο αντικείμενο, αλλά τα εσωτερικά αντικείμενα δεν αντιγράφονται, απλώς αναφέρονται στα ίδια αντικείμενα με το αρχικό.
- Το βαθύ αντίγραφο αντιγράφει αναδρομικά όλα τα εσωτερικά αντικείμενα, δημιουργώντας ένα πλήρως ανεξάρτητο αντίγραφο.
Παράδειγμα:
import copy
original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
original[1][0] = 'αλλαγή'
print(shallow) # [1, ['αλλαγή', 3]] — η εσωτερική λίστα άλλαξε
print(deep) # [1, [2, 3]] — το βαθύ αντίγραφο δεν άλλαξε