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

تابع Lambda یک تابع کوچک ناشناس است که با نام های "عملگرهای لامبدا" و یا "توابع لامبدا" شناخته می شوند.

تابع ناشناس به این معنی است که شما برای تعریف آن نیاز به نام مشخصی ندارید.

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

نمی توانیم توابع دیگری را درون یک تابع Lambda فراخوانی کنیم.

بهزاد میرزازاده بهزاد میرزازاده

زمان مطالعه

3 دقیقه

بازدید

274

پرسش و پاسخ

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

سینتکس (Syntax) تابع لامبدا یا بی نام

lambda arguments : expression

در Syntax بالا عبارت (expression) اجرا می شود و نتیجه بازگردانده می شود.

مثال: در این مثال مقدار 10 را به آرگومان a اضافه می کند و نتیجه را برمی گرداند.

x = lambda a : a + 10
print(x(5))

سینتکس (Syntax) تابع لامبدا در پایتون (Python)

توابع Lambda می توانند هر تعداد آرگومان داشته باشند.

مثال: در این مثال آرگومان a با آرگومان b ضرب می شود و نتیجه برگردانده می شود.

x = lambda a, b : a * b
print(x(5, 6))

سینتکس (Syntax) تابع Lambda در پایتون (Python)

مثال: در این مثال سه آرگومان a و b و c با یکدیگر جمع می شوند و نتیجه برگشت داده می شود.

x = lambda a, b, c : a + b + c
print(x(5, 6, 2))

سینتکس (Syntax) تابع بی نام در پایتون (Python)

دلیل استفاده از توابع Lambda در پایتون

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

مثال: اگر شما یک تابغ دارید که فقط یک آرگومان می گیرد و قرار است این آرگومان با یک عدد ناشناس ضرب شود، به شکل زیر از تابع بی نام استفاده کنید.

def myfunc(n):
  return lambda a : a * n

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

def myfunc(n):
  return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))

دلیل استفاده از توابع لامبدا در پایتون (Python)

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

def myfunc(n):
  return lambda a : a * n
mytripler = myfunc(3)
print(mytripler(11))

دلیل استفاده از توابع Lambda در پایتون (Python)

یا برای ایجاد هر دو تابع (دو برابر کردن، سه برابر کردن)، می توانید از یک تابع استفاده کنید.

def myfunc(n):
  return lambda a : a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11))
print(mytripler(11))

دلیل استفاده از توابع بی نام در پایتون (Python)

نکته: هنگامی که به یک تابع ناشناس یکبار مصرف نیاز دارید، از توابع Lambda استفاده کنید.

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