تابع بی نام در پایتون (Lambda) — به زبان ساده

۱۷۹۹ بازدید
آخرین به‌روزرسانی: ۲۷ اردیبهشت ۱۴۰۲
زمان مطالعه: ۲ دقیقه
تابع بی نام در پایتون (Lambda) — به زبان ساده

در این مطلب، روش ساخت تابع بی نام در پایتون بیان شده است که به آن در فارسی تابع لامبدا یا لاندا و در انگلیسی Anonymous و Lambda نیز گفته می‌شود. در ادامه، مفهوم تابع بی نام در پایتون یا همان تابع لامبدا، نحو این تابع و چگونگی استفاده از آن، با ارائه مثال‌های متنوع آموزش داده شده است.

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

در پایتون، تابع بی نام (تابع لامبدا | Lambda)، تابعی است که بدون نام تعریف می‌شود. در حالی که توابع معمولی با استفاده از کلیدواژه def تعریف می‌شوند، تابع‌های بی نام در پایتون با استفاده از کلیدواژه lambda تعریف می‌شوند. بنابراین، به تابع بی نام در پایتون، تابع lambda نیز گفته می‌شود.

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

روش نوشتن تابع بی نام در پایتون، در ادامه همراه با مثال‌های متنوع آموزش داده شده است.

نحو تابع بی نام در پایتون

نحو تابع بی نام در پایتون به صورت زیر است.

lambda arguments: expression

تابع بی نام در پایتون (تابع Lambda) می‌تواند هر تعدادی آرگومان داشته باشد. اما، فقط می‌تواند دارای یک عبارت (Expression) باشد. عبارت، ارزیابی و بازگردانده می‌شود. تابع Lambda هر گاه که شی تابع مورد نیاز باشد، قابل استفاده محسوب می‌شوند.

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

در ادامه، مثالی از تابع lambda در پایتون که مقدار ورودی را دو برابر می‌کند، آورده شده است.

1# Program to show the use of lambda functions
2
3double = lambda x: x * 2
4
5# Output: 10
6print(double(5))

در برنامه بالا، lambda x: x * 2 یک تابع lambda است. در اینجا، x آرگومان و x * 2‌ عبارتی است که ارزیابی شده و بازگردانده می‌شود. تابع هیچ اسمی ندارد. این تابع، صرفا شی تابع را که به شناساگر double تخصیص داده شده، باز می‌گرداند. قطعه کد اول که در ادامه آمده، تقریبا مشابه قطعه کد دوم است.

قطعه کد اول

1double = lambda x: x * 2

قطعه کد دوم

1def double(x):
2   return x * 2

کاربرد تابع Lambda در پایتون

از تابع Lambda هنگامی استفاده می‌شود که برای مدت زمان کوتاهی نیاز به یک تابع بدون نام باشد. در پایتون، معمولا از تابع بی نام (تابع لامبدا) به عنوان آرگومانی برای توابع مرتبه بالاتر استفاده می‌شود (تابعی که دیگر توابع را به صورت آرگومان دریافت می‌کند). تابع Lambda با توابع توکاری مانند ()filter و ()map کار می‌کند.

مثالی از کاربرد تابع Lambda با ()filter

تابع ()filter در پایتون، یک تابع و لیستی از آرگومان‌ها را به عنوان ورودی دریافت می‌کند. تابع، با همه عناصر لیست فراخوانی می‌شود و یک لیست جدید بازگردانده می‌شود که شامل عناصری است که برای آن‌ها مقدار تابع برابر با «درست» (True) ارزیابی می‌شود. در ادامه، مثالی از استفاده از تابع ()filter برای فیلتر کردن اعداد زوج در یک لیست، آورده شده است.

1# Program to filter out only the even items from a list
2
3my_list = [1, 5, 4, 6, 8, 11, 3, 12]
4
5new_list = list(filter(lambda x: (x%2 == 0) , my_list))
6
7# Output: [4, 6, 8, 12]
8print(new_list)

مثالی از کاربرد تابع Lambda همراه با ()map در پایتون

تابع ()map در پایتون، یک تابع و لیست را دریافت می‌کند. تابع با همه عناصر لیست فراخوانی می‌شود و یک لیست جدید که شامل عناصر بازگردانده شده است با آن تابع برای هر عنصر بازگردانده می‌شود.

در ادامه، مثالی از استفاده از تابع ()map برای دو برابر کردن همه عناصر لیست آورده شده است.

1# Program to double each item in a list using map()
2
3my_list = [1, 5, 4, 6, 8, 11, 3, 12]
4
5new_list = list(map(lambda x: x * 2 , my_list))
6
7# Output: [2, 10, 8, 12, 16, 22, 6, 24]
8print(new_list)

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۲۷ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Programiz
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *