English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا المقال، ستتعرف على الدوال المجهولة، التي تُسمى أيضًا بدوال lambda. من خلال الأمثلة ستتعرف على ما هي، ونحويتها وكيفية استخدامها.
في python، الدوال المجهولة ليست لها اسم معينالدالة.
على الرغم من أن الكلمة المفتوحة def تستخدم في python لتعريف الدوال العادية، إلا أن الكلمة المفتوحة lambda تستخدم لتعريف الدوال المجهولة.
لذلك، تُسمى الدوال المجهولة أيضًا بدوال lambda.
تملك دالة lambda في python النحو التالي.
lambda arguments: expression
يمكن أن يكون لدي دالة lambda أي عدد من المعاملات، ولكن يمكن أن يكون لديها تعبير واحد فقط. يتم حساب التعبير وإرجاعه.
هذا مثال على دالة lambda تجعل القيمة المدخلة تتضاعف.
# عرض البرنامج لدالة lambda double = lambda x: x * 2 print(double(5))
نتيجة الإخراج
10
في البرنامج المذكور أعلاه، lambda x: x * 2 هي دالة lambda. هنا x هو المعامل، x * 2 هو التعبير الذي يتم حسابه وإرجاعه.
هذه الوظيفة ليس لها اسم. تعيد وظيفة الكائن، وتُعين على وسم double. الآن يمكننا تسميتها وظيفة عادية. اكتب أدناه
double = lambda x: x * 2
يساوي:
def double(x): return x * 2
عندما نحتاج إلى وظيفة مجهولة المصدر مؤقتًا، نستخدم وظيفة lambda.
في بايثون، نستخدمها عادة كمعلمات للوظائف المرتفعة (الوظائف التي تأخذ وظائف أخرى كمعلمات)المعلماتLambda يمكن استخدامها مع filter()، map() وغيرها من الوظائف المدمجة.
وظيفة filter() في بايثون تأخذ وظيفة وقائمة.
تتم دعوة هذه الوظيفة باستخدام كل عنصر في القائمة، ويتم إرجاع قائمة جديدة تحتوي على العناصر التي يعود عليها الوظيفة.
هذا مثال على استخدام وظيفة filter() لتصفية العناصر الزوجية من القائمة.
# تصفية العناصر الزوجية من القائمة 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() لتكديس كل عنصر في القائمة 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]