اشتقاق القوائم المشروط
يمكنك تضمين منطق شرطي (جمل 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)