الفكرة ببساطة
إذا كتبت b = a، صار عندك اسمان لنفس القائمة. أي تعديل على محتواها من خلال b يظهر إذا طبعت a.
إذا تبغى قائمة جديدة بالعناصر نفسها، استخدم a.copy(). النسخ هنا سطحي، والعناصر الداخلية القابلة للتغيير تظل مشتركة إذا كانت القائمة متداخلة.
مثال محلول
نتوقع نضيف 2 إلى b. قبل تشغل الكود، توقع وش يظهر عند طباعة a.
a = [1]
b = a
b.append(2)
print(a) # [1, 2]تظهر [1, 2] لأن a وb يشيران إلى نفس القائمة.
انتبه لهالنقطة
لو غيرت b نفسها إلى قائمة جديدة باستخدام b = [3]، فأنت تربط الاسم بقائمة أخرى، وتبقى قائمة a على حالها.
جرّب بنفسك
استبدل b = a بـ b = a.copy(). وش ناتج طباعة a وb بعد إضافة 2؟
اعرض الإجابة
a تطبع [1] وb تطبع [1, 2]. كل اسم يشير إلى قائمة مستقلة في هذا المثال.