اذهب إلى المحتوى
  • 0

ما فائدة دالة lambda في بايثون ومتى أستعملها؟

Mohssen A Mohssen

السؤال

أفهم جيدًا فائدة الدوال في لغات البرمجة وكيفية إستعمالها، ولكن لم أفهم ما فائدة عمل دالة بنحو مختلف syntax لإستخدامها ضمن الكود

ما فائدة دالة lambda في بايثون ومتى أستعملها؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

في Python ، الدالة المجهولة هي دالة يتم تعريفها بدون اسم.

بينما يتم تحديد الدوال العادية باستخدام الكلمة الأساسية def في Python ، يتم تحديد الوظائف المجهولة باستخدام الكلمة الأساسية lambda.

ومن ثم ، فإن الدوال المجهولة تسمى أيضًا وظائف لامدا.

كيف تستخدم دوال لامدا في بايثون؟

دالة lambda في لغة python لها الصيغة التالية.

lambda arguments: expression

يمكن أن تحتوي دوال Lambda على أي عدد من الوسيطات ولكن تحتوي على تعبير واحد فقط. يتم تقييم التعبير وإعادته. يمكن استخدام وظائف Lambda أينما كانت الكائنات الوظيفية مطلوبة.

مثال على دالة Lambda في لغة بايثون :

فيما يلي مثال على دالة lambda التي تضاعف قيمة الإدخال. 

#برنامج لإظهار استخدام دالة لامدا
double = lambda x: x * 2

print(double(5))

الإخراج

10

في البرنامج أعلاه ، lambda x: x * 2 هي وظيفة lambda. هنا x هي الوسيطة و x * 2 هي التعبير الذي يتم تقييمه وإعادته.

هذه الدالة ليس لها اسم. تقوم بإرجاع كائن الوظيفة الذي تم تعيينه لمضاعفة المعرف. يمكننا الآن تسميتها دالة عادية.

double = lambda x: x * 2

هو تقريبا مثل :

def double(x):
   return x * 2

استخدامات دالة Lambda في لغة بايثون :

نستخدم دوال لامدا عندما نحتاج إلى وظيفة غير معروفة لفترة قصيرة من الزمن.

في بايثون ، نستخدمها عمومًا كوسيطة لوظيفة ذات ترتيب أعلى (وظيفة تأخذ وظائف أخرى كوسائط). تُستخدم وظائف Lambda جنبًا إلى جنب مع الوظائف المضمنة مثل ()filter() , map .. وما إلى ذلك.

  • مثال إستخدام lamda مع filter :
# Program to filter out only the even items from a list
my_list = [1, 5, 4, 6, 8, 11, 3, 12]

new_list = list(filter(lambda x: (x%2 == 0) , my_list))

print(new_list)
[4, 6, 8, 12] # output

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

ميزات تعابير lambda:

  • دوال نكتبها بشكل مختصر 
lambda arguments : expression
  • ليس لها اسم 
    >>> def identity(x):
    ...     return x
    
    يكافيء
    
    >>> lambda x: x

     

  • يمكنها أخذ أي عدد من الوسطاء، وتعبير واحد expression 
    x = lambda a, b : a * b
    print(x(5, 6))
    
    
    x = lambda a, b, c : a + b + c
    print(x(5, 6, 2))

     

  • يمكن تمريرها كمعامل لدوال height order functions
    def myfunc(n):
      return lambda a : a * n
    
    my_doubler = myfunc(2)
    my_tripler = myfunc(3)
    
    print(my_doubler(10))
    print(my_tripler(10))

     

تابع توثيق حسوب: Python/lambda_expressions

يوجد أمثلة عنها في 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...