العودة إلى الدورة

اشتقاق القوائم 2: إضافة المنطق الشرطي (`if`)

برمجة Python: معسكر التدريب من الصفر إلى الاحتراف

اشتقاق القوائم المشروط

يمكنك تضمين منطق شرطي (جمل if) داخل اشتقاق القائمة لتصفية العناصر قبل إضافتها إلى القائمة الجديدة.

الصيغة

[expression for item in iterable if condition]

المثال 1: تصفية الأرقام الزوجية

نريد تضمين الأرقام القابلة للقسمة على 2 فقط.

python numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

even_numbers = [n for n in numbers if n % 2 == 0] print(even_numbers) # [2, 4, 6, 8, 10]

المثال 2: تصفية النصوص حسب الطول

python words = ['apple', 'cat', 'banana', 'dog', 'elephant']

short_words = [w for w in words if len(w) <= 4] print(short_words) # ['cat', 'dog']

ملاحظة حول if...else في الاشتقاق:

إذا كنت بحاجة إلى جملة else (أي تريد تحويل العنصر بطريقة معينة إذا كان الشرط صحيحاً، وبطريقة أخرى إذا كان خاطئاً)، فإن جزء if/else ينتقل إلى ما قبل حلقة for.

الصيغة: [value_if_true if condition else value_if_false for item in iterable]

python signals = [-1, 0, 5, -3, 10] statuses = ['Positive' if x > 0 else 'Non-positive' for x in signals] print(statuses)

['Non-positive', 'Non-positive', 'Positive', 'Non-positive', 'Positive']