توابع لامبدا (Python Lambda)
توابع لامبدا: قدرت در کوتاهی (Lambda Functions) ⚡🤏
تابع لامبدا یک تابع کوچک و بدون نام (Anonymous) است. برخلاف توابع معمولی که با def تعریف میشوند، لامبداها فورا و در یک خط نوشته میشوند.
۱. سینتکس و ساختار
ساختار کلی به این صورت است: lambda arguments : expression
- لامبدا میتواند هر تعداد آرگومان داشته باشد، اما فقط یک عبارت (Expression) دارد.
- نتیجه این عبارت به طور خودکار بازگردانده میشود (نیازی به نوشتن return نیست).
x = lambda a, b : a * b
print(x(5, 6)) # 30
۲. چرا از لامبدا استفاده میکنیم؟ 🤔
قدرت واقعی لامبدا زمانی مشخص میشود که از آنها به عنوان یک تابع داخلیِ ناشناس درون یک تابع دیگر استفاده کنید.
فرض کنید تابعی دارید که یک عدد میگیرد و آن را در عددی که بعداً مشخص میشود ضرب میکند:
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11)) # 22
۳. کاربرد در فیلتر و مپ (Map & Filter) 🧹
بیشترین کاربرد لامبدا در پایتون، همراه با توابعی مثل filter() و map() برای کار روی لیستها است:
- Filter: برای جدا کردن آیتمهایی که شرایط خاصی دارند (مثلاً فقط اعداد زوج).
- Map: برای انجام یک عملیات روی تمام اعضای یک لیست (مثلاً دو برابر کردن همه اعداد).
def استفاده کنید تا کدتان قابل خواندن باقی بماند.
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
یک تابع لامبدا بنویسید که دو پارامتر a و b را بگیرد و حاصلجمع آنها را برگرداند. نتیجه را برای اعداد 5 و 10 چاپ کنید.
x = lambda a, b : a + b
print(x(5, 10))
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.