آموزش لامبدا Lambda در پایتون و نحوه فراخوانی آن
جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
توابع لامبدا در پایتون (python lambda functions)
در این درس از آموزش پایتون، قصد داریم مبحث توابع لامبدا در زبان پایتون را به شما عزیزان آموزش دهیم. توابع لامبدا در پایتون، توابع ناشناسی هستند، چرا که این توابع بدون نام هستند. تابع لامبدا یکی از ساده ترین روش ها برای تعریف تابع در پایتون هست. همانطور که می دانید برای تعریف یک تابع عادی در پایتون از کلمه کلیدی def استفاده می شود.
به طور مشابه از کلمه کلیدی lambda برای تعریف یک تابع ناشناس استفاده می شود. کاربرد لامبدا در پایتون در کد هایی است که نیازی به تعریف توابع معمولی و طولانی ندارند و توابع کوتاه و یک خطی نیز راهگشاست.
چگونه لامبدا را در پایتون تعریف کنیم؟
سینتکس توابع لامبدا در پایتون به صورت زیر می باشد:
lambda arguments: expression
ویژگی های توابع لامبدا در پایتون:
- این توابع می توانند هر تعداد آرگومان را داشته باشند اما فقط یک عبارت دارند. این تک عبارت است که ارزیابی و برگردانده می شود.
- استفاده از توابع لامبدا در پایتون در جایی که به اشیا نیاز باشد، آزاد است.
- توابع لامبدا در پایتون از نظر نحوی به یک عبارت محدود می شوند.
در ادامه مثالی از توابع لامبدا در پایتون را آورده ایم:
# 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
در این درس به مبحث بسیار مهم و کاربردی توابع لامبدا در پایتون پرداختیم. ابتدا توضیح دادیم توابع لامبدا چه کاربردی دارند و چگونه نوشته می شوند. پس از آن با ذکر مثال هایی به بیان تفاوت تابع لامبدا و توابع معمولی پرداختیم. امیدواریم این درس را دوست داشته باشید و از آن استفاده کنید. برای تسلط کامل به مبحث لامبدا در پایتون توصیه می کنیم ویدیو این درس را در همین صفحه تماشا کنید.
نظرات دانشجویان
به بهترین نحو توضیح میدین...عالی هست خیلی ممنونم...
ممنونم از شما بابت کامنت خوبی که برای ما فرستادید، امیدواریم از ویژگی خاص این دوره نهایت استفاده را ببرید و بتوانید مطالب زیادی را بیاموزید و استفاده کنید.
سلام من یه درس رو بیشتر ندیم مبحث لامبدا بسیار با حوصله و مفید بود
ممنون از شما خیلی خوشحالیم که دوره پایتون مورد رضایت شما عزیزان بوده است.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.