فهم القائمة باستخدام if/else: بناء الجملة والاستخدام
عند العمل مع فهم القائمة في Python، تمت مواجهته لدمج منطق if/else للتعامل مع العمليات الشرطية. تتناول هذه المقالة بناء الجملة الصحيح لمثل هذه السيناريوهات.
تتمثل المهمة الشائعة في إنشاء قائمة بناءً على تسلسل المصدر، مع حلقة for التالية التي تحتوي على بنية if/else:
results = [] for x in xs: results.append(f(x) if x is not None else '')
يُلحق هذا الرمز '' بقائمة النتائج إذا كانت x لا شيء، وبخلاف ذلك يتم حساب f(x). يمكن أيضًا تحقيق النتيجة المرغوبة باستخدام فهم القائمة، ولكن مع التعديل الضروري في بناء الجملة:
results = [f(x) if x is not None else '' for x in xs]
يكمن الاختلاف الرئيسي في ترتيب عبارات if و else ضمن فهم القائمة. يتطلب بناء الجملة الصحيح وضع جملة if قبل الجزء for، متبوعة بجملة else.
بشكل عام، بناء جملة فهم القائمة مع شرط if/else هو:
[f(x) if condition else g(x) for x in sequence]
بالنسبة لفهم القائمة الذي يتضمن فقط شروط تصفية العناصر من تسلسل المصدر، فإن بناء الجملة هو:
[f(x) for x in sequence if condition]
لاحظ أن التعبيرات الشرطية، المستخدمة في بناء جملة if/else لفهم القائمة، تختلف عن بنية if المستخدمة لـ تصفية. تسمح التعبيرات الشرطية بالاختيار بين تعبيرين بناءً على شرط، على غرار العامل الثلاثي ?: الموجود في اللغات الأخرى. على سبيل المثال:
value = 123 print(value, 'is', 'even' if value % 2 == 0 else 'odd')
يطبع هذا المثال ما إذا كانت القيمة زوجية أو فردية باستخدام تعبير شرطي.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3