Python

توابع lambda

توابع lambda در پایتون: از اصول اولیه تا کاربردهای حرفه‌ای

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

۱. ساختار کلی توابع lambda :

ساختار کلی یک تابع lambda به صورت زیر است:

Python
lambda arguments: expression
  • arguments: آرگومان‌های ورودی به تابع lambda هستند. می‌توانید چندین آرگومان را با کاما از هم جدا کنید.
  • expression: عبارتی است که خروجی تابع را تعیین می‌کند. این عبارت می‌تواند هر محاسبه معتبر در پایتون باشد.

۲. مثال‌های اساسی:

برای درک بهتر، چند مثال از استفاده‌ی ابتدایی توابع lambda ذکر می‌کنیم:

  • دو برابر کردن یک عدد:
Python
double = lambda x: x * ۲
result = double(۵)
print(result)  # خروجی: ۱۰
  • محاسبه مساحت مربع:
Python
area_square = lambda side: side * side
square_side = ۴
square_area = area_square(square_side)
print(f"مساحت مربع: {square_area}")  # خروجی: مساحت مربع: ۱۶
  • بررسی زوج بودن عدد:
Python
is_even = lambda num: num % ۲ == ۰
even_check = is_even(۸)
print(f"عده ۸ زوج است؟ {even_check}")  # خروجی: عده ۸ زوج است؟ True

۳. قابلیت‌ها و کاربردهای حرفه‌ای‌تر:

توابع lambda فراتر از مثال‌های اولیه کاربرد دارند. در اینجا برخی از ویژگی‌ها و سناریوهای استفاده‌ی حرفه‌ای‌تر آن‌ها را بررسی می‌کنیم:

  • آرگومان‌های پیش‌فرض:

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

Python
# تابع محاسبه مساحت با آرگومان پیش‌فرض برای نوع شکل
calculate_area = lambda side, shape_type="square": side * side if shape_type == "square" else None

square_area = calculate_area(۵)  # مربع
rectangle_area = calculate_area(۵, "rectangle")  # مستطیل با ارتفاع ۳

print(f"مساحت مربع: {square_area}")  # خروجی: مساحت مربع: ۲۵
print(f"مساحت مستطیل: {rectangle_area}")  # خروجی: مساحت مستطیل: ۱۵
  • بسته شدن (Closure):

توابع lambda می‌توانند به متغیرهایی که در محدوده فراخوانی آن‌ها تعریف شده‌اند، دسترسی داشته باشند. این رفتار به عنوان بسته شدن (Closure) شناخته می‌شود.

Python
# ایجاد شمارنده با مقدار اولیه قابل تنظیم
def create_counter(initial_value=۰):
  count = initial_value
  return lambda: count + ۱  

counter1 = create_counter(۵)
counter2 = create_counter(۱۰)

print(counter1())  # خروجی: ۶
print(counter1())  # خروجی: ۶
print(counter2())  # خروجی: ۱۱
print(counter2())  # خروجی: ۱۱
  • استفاده در توابع سطح بالاتر:

توابع lambda را می‌توان با توابع سطح بالاتر مانند map , filter   , و sorted() برای انجام عملیات پیچیده روی داده‌ها به کار گرفت.

Python
# لیستی از اعداد
numbers = [۱, ۲, ۳, ۴, ۵]

# دو برابر کردن و سپس محاسبه مجذور هر عدد
squared_numbers = list(map(lambda x: (x * ۲) ** ۲, numbers))
print(squared_numbers)  # خروجی: [۱۶, ۶۴, ۱۴۴, ۲۵۶, ۳۲۴]

# فیلتر کردن اعداد اول
prime_numbers = list(filter(lambda x: x > ۱
۰/۵ ( ۰ امتیاز )
نمایش بیشتر

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

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

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