پایتون

جلسه ۲۴: lambda در پایتون

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

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

تعریف

(lambda تابعی ناشناس است که نوعی داده را بر میگرداند.)

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

Syntax

سینتکس زیر برای استفاده از lambda ها استفاده میشود.

در ساختار بالا پارامترها الزامی نیستند.

اکنون تعدادی lambda ی ساده برای تمرین میسازیم.

در کد زیر یک تابع lambda میبینیم که عدد ورودی آن را سه برابر میکند و آن را به عنوان خروجی برمی‌گرداند.

triple = lambda num : num * 3  # Assigning the lambda to a variable

print(triple(10))  # Calling the lambda and giving it a parameter

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

concat_strings = lambda a, b, c: a[0] + b[0] + c[0]

print(concat_strings("World", "Wide", "Web"))

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

یک تابع lambda نمیتواند چندین خط کدبرای اجرا داشته باشد. این یعنی کاری که این تابع باید انجام دهد، می‌بایست بتوان در یک خط نوشت.

بنابراین، lambda ها برای کارهای کوتاه و تک‌خطی بسیار مفید هستند.

ما میتوانیم از عبارت‌های شرطی نیز در lambda ها نیز استفاده کنیم:

my_func = lambda num: "High" if num > 50 else "Low"

print(my_func(60))

وقتی در lambda ها از عبارات شرطی استفاده میکنید باید هر جفت if و else وجود داشته باشند. در واقع برای هر دو باید کد بنویسید و در غیر اینصورت نرم‌افزار به شما ارور میدهد.

my_func = lambda num: "High" if num > 50

هدف lambda ها

اما هدف استفاده از lambda ها چیست؟؟ ما آن ها را به متغیرهایی نسبت میدهیم بنابراین هنوز هم آن‌ها نام دارند!

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

این موضوع در درس بعدی مورد بررسی قرار میگیرد، جایی که قرار است یاد بگیریم هدف اصلی و درست توابع lambda ای چیست.

نوشته های مشابه

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا