در پایتون، تابع لامبدا (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
استفاده کنید. -
لامبداها معمولاً خوانایی کد را در مواقع ساده افزایش میدهند.
💡 تمرینهای پیشنهادی
-
با استفاده از
lambda
وmap
، لیستی از مکعب اعداد 1 تا 5 ایجاد کن. -
با
lambda
وfilter
، از یک لیست اعداد فقط اعداد زوج را جدا کن. -
لیستی از رشتهها را بر اساس طول هر رشته با
sorted
وlambda
مرتب کن.
توابع Lambda ابزاری سریع و مختصر برای تعریف توابع کوچک هستند و در ترکیب با توابعی مثل map
، filter
و sorted
بسیار قدرتمند عمل میکنند.