آموزش تابع lambda در پایتون

زمان مطالعه: 5 دقیقه ویرایش: 1401/10/14

سلام!

توی این مقاله قراره با تابع lambda در پایتون آشنا میشیم که توی پروژه های مختلف خیلی به دردمون میخوره.

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

با مثال شروع می‌کنیم:

فرض کنید قراره یه تابعی بنویسیم که عددی دریافت میکنه و دوبرابر اون عدد رو ریترن میکنه. به صورت عادی ما به این شکل می‌نویسیم:

def double(num):
    return num * 2

اسم این تابع، double هست و دو برابر ورودیش(num) رو ریترن میکنه.

خب حالا میخوایم همین کار رو با lambda انجام بدیم.

  • برای اینکار، اول اگه نیاز بود باید یه متغیر تعریف کنید و تابعتون رو توی اون بنویسید.
  • بعدش lambda رو مینویسید جلوی اون، پارامتر های تابع رو مشخص میکنید(مثل num در مثال ما)
  • بعد از تعریف پارامتر ها، علامت : رو میگذاریم و کاری که  تابع باید انجام بده رو مینویسیم

حالا همین کار ها رو توی کد انجام میدیم تا ببینیم چه شکلی میشه:

double = lambda num: num*2

 خب پس همونطور که گفتم، double، نام تابع و num، ورودی تابع هستند. حالا مثل تابع هایی که با def مینوشتیم، تابع رو اجرا میکنیم و ورودی رو بهش میدیم و نتیجه رو پرینت میکنیم:

>>> double = lambda num: num*2
>>> print(double(5))
10

 نتیجه مون هم شد 10 که درست هم هست چون 5*2 برابر با 10 میشه!

فرض کنید میخوایم تابعی بنویسیم که 2ورودی دریافت کنه و حاصل جمعشون رو برگردونه. برای این کار، به دریافت دو ورودی برای تابع نیاز داریم و اگه بخوایم این رو با lambda بنویسیم، به این شکل میشه:

x = lambda a, b : a+b
print(x(5, 8))

در اینجا، x اسم تابعمون هست و a, b هم پارامتر های تابع هستند. پس در lambda هم مثل  تابع عادی، پارامتر ها رو با ویرگول جدا میکنیم. نتیجه این کد هم 13 میشه که درسته

 


خب بریم سراغ قسمت بعدی آموزش و lambda رو با تابع map ترکیب کنیم :)

اگه با تابع map آشنایی ندارید، میتونید از این لینک وارد مقاله آموزش تابع map بشید.

 

خب همونطور که در مقاله تابع map گفتیم، map یه تابع میگیره که اون رو میتونیم lambda بدیم. این کار خیلی چیز پیچیده ای نیست و نیاز به توضیح خیلی زیادی نداره. فرض کنید میخوایم برنامه ای بنویسیم که اعضای لیستمون رو دو برابر کنه (با استفاده از تابع map و تابع lambda)

x = [1, 2, 3]
y = list(map(lambda a: a * 2, x))
print(y)

خب توی اینجا لیستی به نام x داریم که شامل اعداد 1 و 2 و 3 هست. حالا به map  تابعی که برای ضرب عدد در 2 هست رو دادیم. بنابراین کل این کد، اعضای لیستمون رو دو برابر میکنه و پرینت میکنه که خروجی هم [2, 4, 6] هست که کاملا درسته :)

 

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

فعلا!



3
user نوشته شده توسط علی سلیمی برنامه نویس پایتون و جنگو


دیدگاه


برای ثبت دیدگاه، وارد شوید