"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > متى يتطلب بناء جملة فهم القائمة مشغلًا ثلاثيًا في بايثون؟

متى يتطلب بناء جملة فهم القائمة مشغلًا ثلاثيًا في بايثون؟

تم النشر بتاريخ 2024-11-08
تصفح:956

When Does List Comprehension Syntax Require a Ternary Operator in Python?

لغز فهم القائمة: التصفية المشروطة في العناصر التكرارية

في 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. هذا الأسلوب أقل شيوعًا ويستخدم عادةً عند الحاجة إلى قيمة افتراضية.

بيان الافراج أعيد طبع هذه المقالة على: 1729571541 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3