القائمة الرئيسية

الصفحات

دورة البرمجة بلغة بايثون - الدرس الثامن عشر (دالة بايثون المجهولة / لامدا)

دورة البرمجة بلغة بايثون - الدرس الثامن عشر (دالة بيثون المجهولة / لامدا)

دورة البرمجة بلغة بايثون - الدرس الثامن عشر (دالة بايثون المجهولة / لامدا)

في هذه المقالة ، ستتعرف على الوظيفة المجهولة ، والمعروفة أيضًا باسم وظائف لامدا. سوف تتعلم ما هي ، تركيبها وكيفية استخدامها (مع أمثلة).


ما هي وظائف لامدا في بايثون؟

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


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


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


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

دالة لامدا في لغة بايثون لها الصيغة التالية.

lambda arguments: expression


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


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

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

# Program to show the use of lambda functions
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() إلخ.


مثال للاستخدام مع دالة filter():

تأخذ دالة filter () في بايثون دالة وقائمة كوسائط.


يتم استدعاء الوظيفة مع جميع العناصر الموجودة في القائمة ويتم إرجاع قائمة جديدة تحتوي على العناصر التي يتم تقييم الوظيفة لها إلى True.


فيما يلي مثال لاستخدام وظيفة 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]


مثال للاستخدام مع دالة ()map:

تأخذ وظيفة map في بايثون وظيفة وقائمة.


يتم استدعاء الدالو مع جميع العناصر الموجودة في القائمة ويتم إرجاع قائمة جديدة تحتوي على العناصر التي تم إرجاعها بواسطة تلك الدالة لكل عنصر.


فيما يلي مثال لاستخدام الدالة map لمضاعفة جميع العناصر الموجودة في القائمة.

# Program to double each item in a list using map()

my_list = [1, 5, 4, 6, 8, 11, 3, 12]

new_list = list(map(lambda x: x * 2 , my_list))

print(new_list)


الناتج:

[2, 10, 8, 12, 16, 22, 6, 24]



 

reaction:

تعليقات