آموزش توابع Lambda (لامبدا) در پایتون
منبع: https://rasanika.com
تابع لامبدا در پایتون یک تابع کوچک ناشناس است. (تابع ناشناس به تابع بدون نام گفته میشود.)
یک تابع لامبدا می تواند به تعداد دلخواه آرگومان بگیرد، اما فقط می تواند یک دستور داشته باشد.
سینتکس و نحوه نوشتن
نحوه تعریف یک تابع لامبدا به صورت زیر است:
lambda arguments : expression
با فراخوانی این تابع، دستور و expression موردنظر اجرا شده و نتیجه برمی گردد.
مثال
عدد 10 را به ورودی اضافه کرده و نتیجه را برگردانید:
x = lambda a : a + 10
print(x(5))
توابع لامبدا می توانند هر تعداد آرگومان را دریافت کنند:
مثال
x = lambda a, b : a * b
print(x(5, 6))
آرگومان های a
و b
و c
را جمع کرده و نتیجه را برگردانید:
x = lambda a, b, c : a + b + c
print(x(5, 6, 2))
چرا از توابع لامبدا استفاده کنیم؟
قدرت لامبدا زمانی بهتر نشان داده می شود که از آن به عنوان یک تابع ناشناس در یک تابع دیگر استفاده کنید.
فرض کنید یک تابع دارید که یک آرگومان می گیرد و آن آرگومان را با یک عدد مجهول ضرب می کند:
def myfunc(n):
return lambda a : a * n
می توانید از این تابع برای ایجاد تابع دیگری استفاده کنید که همیشه عددی را دریافت و دو برابر میکند:
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
و همینطور یک تابع دیگر که این بار عدد دریافتی را سه برابر می کند:
def myfunc(n):
return lambda a : a * n
mytripler = myfunc(3)
print(mytripler(11))
در واقع از یک تعریف تابع یکسان، برای ساخت دو تابع متفاوت استفاده کردیم:
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11))
print(mytripler(11))
کاربرد دیگر لامبدا زمانی است که می خواهید یک تابع که یک دستور ساده دارد را تعریف و استفاده کنید.