• 0

هل هنالك طريقة معينة لاستخدام الجملة الشرطية if داخل lambda في بايثون؟

أريد وضع شرط للتحقق من قيمة متغير معينة ومن ثم تنفيذ أمر معين حسب نتيجة الشرط أي إذا كانت النتيجة صحيحة فسيتم تنفيذ أمر معين وإذا كانت خاطئة فسيتم تنفيذ أمر آخر.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

أعتقد أن الصياغة التي تبحث عنها هي هذه:

lambda x: True if x % 2 == 0 else False

لكنها تعتبر صياغة سيئة في بايثون ولا ينصح باستخدامها.
المشكلة أنه لا يمكنك كتابة أي أمر في دالة lambda فمثلا  لا يمكنك استخدام print أو raise فيها.
طريقة أخرى للحل باستخدام lambda:

f = lambda x: x == 2 and x or None

الحل الآخر هو أن تقوم بعمل دالة كاملة بدل استخدام lambda وهذا الحل في رأيي هو الأفضل، وسيكون شكل الدالة الكاملة كالتالي:

def f(x):
    if x == 2:
        print(x)
    else:
        raise ValueError


انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن