الرجوع للمكتبةPython · 4 دقائق قراءة

ليش تغيرت القائمة الأولى في بايثون؟

الفرق بين إعطاء القائمة اسم ثاني وإنشاء نسخة منها، بمثال تقدر تشغله.

الفكرة ببساطة

إذا كتبت 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]. كل اسم يشير إلى قائمة مستقلة في هذا المثال.

أكمل القراءة

هياكل البيانات4 دقائق قراءة

متى تستخدم الطابور ومتى تستخدم المكدس؟

تتبع ترتيب خروج العناصر من Queue وStack على مثال طلبات دعم.

اقرأ الدرس
SQL5 دقائق قراءة

كيف تظهر كل الطلاب حتى اللي ما سجلوا؟

استخدم LEFT JOIN وشوف أثر القيم الناقصة على العد.

اقرأ الدرس