آموزش توابع Lambda (لامبدا) در پایتون

توابع lambda در پایتون

تابع لامبدا در پایتون یک تابع کوچک ناشناس است. (تابع ناشناس به تابع بدون نام گفته می‌شود.)

یک تابع لامبدا می تواند به تعداد دلخواه آرگومان بگیرد، اما فقط می تواند یک دستور داشته باشد.

سینتکس و نحوه نوشتن

نحوه تعریف یک تابع لامبدا به صورت زیر است:

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))

کاربرد دیگر لامبدا زمانی است که می خواهید یک تابع که یک دستور ساده دارد را تعریف و استفاده کنید.

مجموعهآموزش پایتون از صفر(23 پست)
1.پایتون چیست؟ مقدمه پایتون10 ماه قبل2.برنامه نویسی پایتون را چطور شروع کنیم؟10 ماه قبل3.آموزش سینتکس (نحوه نوشتن) پایتون10 ماه قبل4.آموزش متغیرهای پایتون10 ماه قبل5.آموزش انواع داده در پایتون10 ماه قبل6.آموزش اعداد در پایتون10 ماه قبل7.آموزش Casting (تبدیل نوع داده) در پایتون10 ماه قبل8.آموزش رشته در پایتون10 ماه قبل9.آموزش بولین یا Boolean در پایتون10 ماه قبل10.آموزش عملگرهای پایتون10 ماه قبل11.آموزش لیست در پایتون10 ماه قبل12.آموزش تاپل یا چندتایی در پایتون9 ماه قبل13.آموزش Set یا مجموعه در پایتون8 ماه قبل14.آموزش نوع داده دیکشنری در پایتون8 ماه قبل15.آموزش شرط if ... else در پایتون8 ماه قبل16.آموزش حلقه while در پایتون8 ماه قبل17.آموزش حلقه for در پایتون8 ماه قبل18.آموزش توابع در پایتون8 ماه قبل19.آموزش توابع Lambda (لامبدا) در پایتون8 ماه قبل20.آموزش آرایه در پایتون7 ماه قبل21.آموزش کلاس و Object در پایتون7 ماه قبل22.آموزش ارث بری یا وراثت در پایتون7 ماه قبل23.آموزش تکرارگر یا iterator در پایتون7 ماه قبل

کامنت ها