شبكة تعلم مع ناو

ما الفرق بين copy وdeepcopy في Python؟

  • copy.copy(): نسخة سطحية. القائمة الخارجية جديدة، لكن العناصر الداخلية مشتركة مع الأصل.
  • copy.deepcopy(): نسخة عميقة. كل شيء يُنسخ من جديد، حتى الداخلي.
import copy

original = [[1, 2], [3, 4]]

shallow = copy.copy(original)
deep = copy.deepcopy(original)

original[0].append(99)

print(shallow)  # [[1, 2, 99], [3, 4]]  shared inner list
print(deep)     # [[1, 2], [3, 4]]      fully separate

متى أحتاج deepcopy؟

عندما تحتوي البيانات على قوائم أو قواميس داخل بعضها، وتريد تعديل النسخة دون أن يتأثر الأصل. وهي أبطأ من copy لأنها تنسخ كل شيء.

اختبر نفسك

خمسة أسئلة سريعة، مع الإجابة والشرح بعد كل سؤال.