صفحه اصلی / دوره‌های آموزشی / آموزش پایتون از مقدماتی تا متوسط / آموزش لامبدا Lambda در پایتون و نحوه فراخوانی آن

آموزش لامبدا Lambda در پایتون و نحوه فراخوانی آن

آموزش لامبدا Lambda در پایتون و نحوه فراخوانی آن
براي خريد اين درس نياز است وارد سايت شويد. در صورت نداشتن حساب کاربري عضو شويد.
81,000 تومان

جلسات دوره


                                        
مهدی عباسی
مدرس:

مهدی عباسی

18 سال سابقه برنامه‌نویسی و تدریس برنامه‌نویسی
کسب مقام‌های اول و دوم کشوری در مسابقات برنامه‌نویسی

مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه

توابع لامبدا در پایتون (python lambda functions)

در این درس از آموزش پایتون، قصد داریم مبحث توابع لامبدا در زبان پایتون را به شما عزیزان آموزش دهیم. توابع لامبدا در پایتون، توابع ناشناسی هستند، چرا که این توابع بدون نام هستند. تابع لامبدا یکی از ساده ترین روش ها برای تعریف تابع در پایتون هست. همانطور که می دانید برای تعریف یک تابع عادی در پایتون از کلمه کلیدی def استفاده می شود. 

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

چگونه لامبدا را در پایتون تعریف کنیم؟

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

lambda arguments: expression

ویژگی های توابع لامبدا در پایتون:

  1. این توابع می توانند هر تعداد آرگومان را داشته باشند اما فقط یک عبارت دارند. این تک عبارت است که ارزیابی و برگردانده می شود.
  2. استفاده از توابع لامبدا در پایتون در جایی که به اشیا نیاز باشد، آزاد است. 
  3. توابع لامبدا در پایتون از نظر نحوی به یک عبارت محدود می شوند.

در ادامه مثالی از توابع لامبدا در پایتون را آورده ایم:

# Python program to demonstrate
# lambda functions 
 
x ="Darsman.com"
 
# lambda gets pass to print
(lambda x : print(x))(x)

خروجی این قطعه کد نیز به شکل زیر می باشد:

Darsman.com

تفاوت بین توابع لامبدا در پایتون و توابع تعریف شده با def

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

# Python code to illustrate cube of a number
# showing difference between def() and lambda().
def cube(y):
    return y*y*y
 
lambda_cube = lambda y: y*y*y
 
# using the normally
# defined function
print(cube(5))
 
# using the lambda function
print(lambda_cube(5))

خروجی این برنامه نیز به صورت زیر می باشد:

125
125

همانطور که دیدید هر دو تابع ()cube و ()lambda_cube عملکرد یکسانی داشتند. 
همانطور که از این مثال متوجه شدیم؛ هردوی این توابع یک عدد معین را بر می گردانند. هنگام تعریف تابع با کلمه کلیدی def ابتدا باید تابعی را با تعریف کرده و سپس مقداری را به آن ارسال کنیم. 
پس از اجرای تابع نیز برای برگرداندن نتیجه از کلمه کلیدی return استفاده کنیم. اما هنگام استفاده از توابع لامبدا در پایتون نیازی به استفاده از return نداریم. چرا که همیشه اوی عبارتی است که برگردانده می شود. شما می توانید تعریف لامبدا را در هر جایی که انتظار یک تابع را دارید قرار دهید و مجبور نیستید ان را به یک متغیر اختصاص دهید.
در ادامه نیز چند مثال دیگر از مبحث لامبدا در پایتون را آورده ایم تا بهتر متوجه این درس شوید:
مثال اول: این مثال نمونه ای ازتابع لامبدا در پایتون به همراه if-else می باشد:

# Example of lambda function using if-else
Max = lambda a, b : a if(a > b) else b 
print(Max(1, 2))

خروجی این مثال عدد (2) می باشد.

مثال دوم: این مثال نمونه ای از تابع لامبدا و لیست ها می باشد:

tables = [lambda x=x: x*10 for x in range(1, 11)]
 
for table in tables:
    print(table())

خروجی این قطعه کد نیز به صورت زیر می باشد:

10
20
30
40
50
60
70
80
90
100


در این درس به مبحث بسیار مهم و کاربردی توابع لامبدا در پایتون پرداختیم. ابتدا توضیح دادیم توابع لامبدا چه کاربردی دارند و چگونه نوشته می شوند. پس از آن با ذکر مثال هایی به بیان تفاوت تابع لامبدا و توابع معمولی پرداختیم. امیدواریم این درس را دوست داشته باشید و از آن استفاده کنید. برای تسلط کامل به مبحث لامبدا در پایتون توصیه می کنیم ویدیو این درس را در همین صفحه تماشا کنید.
 

نظرات دانشجویان

کاربر درسمن
کاربر

به بهترین نحو توضیح میدین...عالی هست خیلی ممنونم...

پشتیبانی 1
پشتیبانی 1

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

کاربر درسمن
nader

سلام من یه درس رو بیشتر ندیم مبحث لامبدا بسیار با حوصله و مفید بود

پشتیبانی 1
پشتیبانی 1

ممنون از شما خیلی خوشحالیم که دوره پایتون مورد رضایت شما عزیزان بوده است.

نمایش بیشتر

نظر شما در تصمیم دیگران اثرگذار است.

لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.

برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.
ثبت نام

892