Python Lambda

در پایتون، تابع لامبدا (Lambda Function) یک تابع کوچک و بی‌نام است که می‌توان آن را در یک خط تعریف کرد.
از لامبدا برای کارهای سریع و کوتاه استفاده می‌شود؛ جایی که تعریف تابع کامل با def نیاز نیست.

🔹 ساختار کلی

lambda arguments: expression
  • arguments: ورودی‌های تابع (می‌تواند صفر، یک یا چند باشد).

  • expression: یک عبارت که نتیجهٔ آن به طور خودکار برگردانده می‌شود.

🔹 مثال ساده

square = lambda x: x * x print(square(5)) # خروجی: 25

این معادل است با:

def square(x): return x * x

🔹 چند آرگومان

add = lambda a, b: a + b print(add(3, 7)) # 10

🔹 بدون آرگومان

hello = lambda: "سلام دنیا" print(hello()) # سلام دنیا

🔹 استفاده در توابع مرتبه بالا

لامبداها اغلب همراه توابعی مثل map، filter و sorted استفاده می‌شوند.

با map

اعمال یک تابع روی تمام عناصر:

numbers = [1, 2, 3, 4] doubles = list(map(lambda x: x * 2, numbers)) print(doubles) # [2, 4, 6, 8]

با filter

فیلتر کردن بر اساس شرط:

nums = [5, 10, 15, 20] greater_than_10 = list(filter(lambda x: x > 10, nums)) print(greater_than_10) # [15, 20]

با sorted

مرتب‌سازی براساس یک کلید خاص:

people = [("Ali", 25), ("Sara", 20), ("Reza", 30)] people_sorted = sorted(people, key=lambda p: p[1]) print(people_sorted) # [('Sara', 20), ('Ali', 25), ('Reza', 30)]

🔹 لامبدا درون توابع دیگر

می‌توانید لامبدا را در یک تابع به عنوان مقدار بازگشتی برگردانید:

def make_multiplier(n): return lambda x: x * n double = make_multiplier(2) print(double(5)) # 10

✅ نکات مهم

  • لامبدا فقط یک عبارت می‌تواند داشته باشد؛ چند خط یا دستورات پیچیده پشتیبانی نمی‌شود.

  • برای عملیات ساده مناسب است؛ اگر منطق پیچیده دارید از def استفاده کنید.

  • لامبداها معمولاً خوانایی کد را در مواقع ساده افزایش می‌دهند.

💡 تمرین‌های پیشنهادی

  1. با استفاده از lambda و map، لیستی از مکعب اعداد 1 تا 5 ایجاد کن.

  2. با lambda و filter، از یک لیست اعداد فقط اعداد زوج را جدا کن.

  3. لیستی از رشته‌ها را بر اساس طول هر رشته با sorted و lambda مرتب کن.

توابع Lambda ابزاری سریع و مختصر برای تعریف توابع کوچک هستند و در ترکیب با توابعی مثل map، filter و sorted بسیار قدرتمند عمل می‌کنند.