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

توابع لامبدا در پایتون
توابع لامبدا در پایتون، که به عنوان توابع ناشناس نیز شناخته میشوند، توابع کوتاهی هستند که در پایتون تعریف میشوند و نام ندارند. آنها به طور مستقیم در محل استفاده خود تعریف میشوند و معمولاً فقط برای انجام یک کار ساده و خاص استفاده میشوند.
در این مقاله راهنمای جامع، به بررسی کامل توابع لامبدا در پایتون، از جمله نحو، کاربردها، مثالهای عملی، و نکات مهم، میپردازیم.
1. نحو توابع لامبدا
ساختار کلی توابع لامبدا به صورت زیر است:
lambda آرگومانها: عبارت
در این ساختار:
lambdaکلمه کلیدی برای تعریف تابع لامبدا است.آرگومانهامتغیرهایی هستند که به تابع لامبدا داده میشوند.عبارتدستوری است که وظیفه تابع لامبدا را انجام میدهد.
2. کاربردهای توابع لامبدا
توابع لامبدا در طیف گستردهای از سناریوها برای انجام وظایف ساده و خاص، مانند مرتبسازی لیستها، فیلتر کردن دادهها، و اعمال توابع بر روی عناصر لیست، استفاده میشوند.
برخی از کاربردهای رایج توابع لامبدا عبارتند از:
- مرتبسازی لیستها:
numbers = [5, 2, 4, 1, 3]
sorted_numbers = sorted(numbers, key=lambda x: x * 2)
print(sorted_numbers) # [1, 2, 3, 4, 5]
در این مثال، تابع لامبدا x * 2 برای مرتبسازی لیست numbers بر اساس دو برابر شدن هر عنصر استفاده میشود.
- فیلتر کردن دادهها:
data = [{"name": "John", "age": 30}, {"name": "Alice", "age": 25}, {"name": "Bob", "age": 22}]
filtered_data = list(filter(lambda person: person["age"] >= 25, data))
print(filtered_data) # [{'name': 'John', 'age': 30}, {'name': 'Alice', 'age': 25}]
در این مثال، تابع لامبدا person["age"] >= 25 برای فیلتر کردن لیست data و یافتن افرادی که سن آنها 25 سال یا بیشتر است، استفاده میشود.
- اعمال توابع بر روی عناصر لیست:
strings = ["hello", "world", "python"]
modified_strings = list(map(lambda s: s.upper(), strings))
print(modified_strings) # ['HELLO', 'WORLD', 'PYTHON']
در این مثال، تابع لامبدا s.upper() برای تبدیل هر عنصر در لیست strings به حروف بزرگ استفاده میشود.
3. مثالهای عملی
در اینجا چند مثال عملی از توابع لامبدا در پایتون آورده شده است:
مثال 1: محاسبه مربع اعداد:
squares = list(map(lambda x: x * x, range(1, 11)))
print(squares) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
مثال 2: بررسی زوج یا فرد بودن اعداد:
is_even = lambda x: x % 2 == 0
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(is_even, numbers))
odd_numbers = list(filter(lambda x: not is_even(x), numbers))
print(even_numbers) # [2, 4]
print(odd_numbers) # [1, 3, 5]
مثال 3: پیدا کردن کوچکترین عدد در لیست:
smallest = lambda numbers: min(numbers)
numbers = [5, 2, 4, 1, 3]
min_number = smallest(numbers)
print(min_number) # 1
4. نکات مهم
- از توابع لامبدا برای انجام وظایف ساده و خاص که نیاز به تعریف تابع جداگانه ندارند، استفاده می شود.
- از توابع لامبدا برای خواناتر و فشردهتر کردن کد خود استفاده کنید.
- از توابع لامبدا به جای حلقههای for و توابع داخلی، زمانی که کار سادهای دارید، استفاده کنید.
- مراقب پیچیدگی بیش از حد توابع لامبدا باشید، زیرا خوانایی و اشکالزدایی آنها را دشوار میکند.
- از توابع لامبدا در جاهایی که نیاز به متغیرهای خارجی یا دسترسی به اشیا دارید، استفاده نکنید.
5. منابع مفید:
- آموزش توابع لامبدا در پایتون:جامعترین آموزش برنامه نویسی پایتون در ایران
- آموزش توابع لامبدا در پایتون: https://faradars.org/courses/fvpht9808s04-class-in-python
در این مقاله، سعی کردیم به بررسی کامل توابع لامبدا در پایتون، از جمله نحو، کاربردها، مثالهای عملی، و نکات مهم، بپردازیم. با استفاده از توابع لامبدا میتوانید کد خود را سادهتر، خواناتر و فشردهتر کنید و از قابلیت استفاده مجدد آن بهرهمند شوید.