تستخدم Lambda Expressions بشكل مثالي عندما يكون لدينا شيء بسيط يمكن القيام به ، فنحن مهتمون أكثر بإنجاز المهمة بسرعة بدلاً من تسمية الوظيفة بشكل رسمي. تعرف تعبيرات لامدا أيضًا بالوظائف المجهولة. [ساعد مجتمعنا على توسيعه](https://github.com/freecodecamp/guides/tree/master/src/pages/python/lambda-expressions/index.md) .
تعبيرات Lambda في Python هي طريقة قصيرة لإعلان وظائف صغيرة ومجهولة (ليس من الضروري توفير اسم لوظائف lambda). وظائف Lambda تتصرف مثل الوظائف العادية المعلنة `def` المفتاحية. أنها تأتي في متناول اليدين عندما تريد تحديد وظيفة صغيرة بطريقة موجزة. يمكن أن تحتوي على تعبير واحد فقط ، لذلك فهي ليست الأنسب للوظائف مع عبارات تدفق التحكم. رئيس
#### بناء جملة دالة لامبدا
`lambda arguments: expression`
يمكن أن تحتوي دالات Lambda على أي عدد من الوسيطات ولكن فقط تعبير واحد
في المثال lambda أعلاه lambda `lambda x: x ** 2` ينتج كائن دالة مجهول يمكن ربطه بأي اسم. لذا ، قمنا بربط كائن الدالة مع `square` وبالتالي من الآن فصاعداً يمكننا استدعاء الكائن `square` مثل أي وظيفة تقليدية. مثل `square(10)`
لنفترض أنك تريد تصفية الأرقام الفردية من `list` . يمكنك استخدام حلقة `for` :
`my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filtered = []
for num in my_list:
if num % 2 != 0:
filtered.append(num)
print(filtered) # Python 2: print filtered
# [1, 3, 5, 7, 9]
```
You could write this as a one liner with list-comprehensions
`
الثعبان filtered = \[x for x in \[1، 2، 3، 4، 5، 6، 7، 8، 9، 10\] if x٪ 2! = 0\] \`\` \`
ولكن قد تميل إلى استخدام وظيفة `filter` المضمنة. لماذا ا؟ المثال الأول هو قليلاً للتطويق ، يمكن أن يكون من الصعب فهم الخط الواحد ، حيث يقدم `filter` أفضل ما في الكلمتين. ما هو أكثر من ذلك ، عادة ما تكون الوظائف المضمنة أسرع.
` `` NOTE: in Python 3 built in function return generator objects, so you have to call` معادة ` `` NOTE: in Python 3 built in function return generator objects, so you have to call` القائمة `, while in Python 2 they return a` قائمة `,` مجموعة `or` سلسلة.
ماذا حدث؟ لقد أخبرت `filter` أن تأخذ كل عنصر في `my_list` وتطبيق تعبيرات lambda. يتم تصفية القيم التي تُرجع `False` .