في Python، يوفر فهم القائمة طريقة موجزة لإنشاء قوائم بناءً على العناصر التكرارية الموجودة. ومع ذلك، نشأ سؤال بخصوص فهم القائمة التي تتضمن عبارة if.
كان الهدف هو مقارنة عنصرين تكراريين، a وb، وطباعة العناصر التي ظهرت في كليهما فقط. يبدو الكود المقصود كما يلي:
print([y if y not in b for y in a])
لسوء الحظ، أدى هذا الرمز إلى خطأ في بناء الجملة. تكمن المشكلة في ترتيب بنية if-else. في بايثون، يجب أن تأتي العبارة الشرطية بعد حلقة for في فهم القائمة ما لم يتم استخدامها كمشغل ثلاثي.
بناء الجملة الصحيح:
[y for y in a if y not in b]
يتكرر هذا الرمز من خلال كل عنصر y في a. إذا لم يتم العثور على y في b، فسيتم إضافته إلى القائمة. ستحتوي القائمة الناتجة على العناصر التي تظهر في كل من a وb.
صيغة المشغل الثلاثي البديل:
[y if y not in b else other_value for y in a]
يستخدم هذا الرمز عامل التشغيل الثلاثي لتحديد قيمة بديلة (قيمة_أخرى) في حالة عدم العثور على y في b. هذا الأسلوب أقل شيوعًا ويستخدم عادةً عند الحاجة إلى قيمة افتراضية.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3