سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ عرفان محبی جو
if else in list comprehension
جامعه پایتون (وب) ایجاد شده در ۰۶ خرداد ۱۴۰۳

سلام 

یک نکته جالبتر در خصوص list comprehension: 
به این طریق میشه if else رو توی list comprehension نوشت. یعنی ابتدا عملیات بعد از if و بعدش عملیات بعد از else و در نهایت حلقه 

[print(f"{i} YES") if i % 2 == 0 else print(f"{i} NO") for i in range(1,20)]

سلام،

بله درسته و شرط‌های تو در تو رو هم میتونیم به این شکل داشته باشیم:

result = [f"{i} YES" if i % 2 == 0 else (f"{i} NO" if i % 3 == 0 else f"{i} MAYBE") for i in range(1, 20)]
print(result)

تو کد بالا، اعداد زوج با "YES"، اعداد مضرب 3 با "NO" و بقیه اعداد با "MAYBE" برچسب‌گذاری میشن.

و همچنین میتونیم از توابع لامبدا استفاده کنیم:

func = lambda x: f"{x} EVEN" if x % 2 == 0 else f"{x} ODD"
result = [func(i) for i in range(1, 20)]
print(result)

اینجا، تابع lambda برای تعیین زوج یا فرد بودن عدد به کار رفته و نتیجه در لیست ذخیره شده.

محسن موحد ۰۷ خرداد ۱۴۰۳، ۲۳:۰۰