Sobes.tech
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]] — το βαθύ αντίγραφο δεν άλλαξε