single
Лямбда-функції
Свайпніть щоб показати меню
Лямбда-функції — це анонімні функції, тобто вони не мають імені. Вони створюються за допомогою ключового слова lambda і часто використовуються для визначення коротких функцій, коли потрібно задати функцію безпосередньо на місці.
Базовий синтаксис лямбда-функції виглядає так:
lambda arguments: expression
lambda: ключове слово, що позначає початок визначення лямбда-функції;arguments: список аргументів, які приймає функція;expression: вираз, який виконується при виклику функції. Результат виразу повертається як значення функції.
Основна особливість лямбда-функцій — їхній лаконічний синтаксис. Вони зручні, коли потрібно визначити просту функцію без написання великої кількості коду.
Один або декілька аргументів
Лямбда-функція може приймати один або декілька аргументів:
1234567# Single argument square = lambda x: x**2 print(square(5)) # 25 # Multiple arguments add = lambda x, y: x + y print(add(3, 5)) # 8
Умовна логіка у лямбда-функціях
Можна використовувати тернарний вираз для додавання умовної логіки всередині лямбда-функції:
123is_even = lambda x: "even" if x % 2 == 0 else "odd" print(is_even(4)) # "even" print(is_even(7)) # "odd"
Використання лямбда з вбудованими функціями
Поширений випадок використання — поєднання лямбда-функцій із вбудованими функціями, такими як map() та filter():
123456789prices = [100, 200, 300] # Apply 10% discount to each price discounted = list(map(lambda price: price * 0.9, prices)) print(discounted) # [90.0, 180.0, 270.0] # Keep only prices above 150 expensive = list(filter(lambda price: price > 150, prices)) print(expensive) # [200, 300]
Можна також використовувати max() всередині lambda для обробки крайових випадків безпосередньо у виразі:
123safe_value = lambda x: max(x, 0) # Returns 0 if x is negative print(safe_value(-5)) # 0 print(safe_value(10)) # 10
Лямбда-функції найкраще підходять для короткої логіки з одним виразом. Якщо функція потребує кількох рядків або складної логіки, доцільніше використовувати звичайну функцію def.
Проведіть, щоб почати кодувати
Є список цін (prices), і потрібно реалізувати лямбда-вираз, який приймає ціну як параметр і віднімає 13% податку від неї.
- Визначити лямбда-вираз за допомогою ключового слова
lambda. - Лямбда-вираз повинен приймати один параметр (
price). - Якщо
priceвід’ємна, вважати її некоректною та повертати 0 за допомогою функціїmax()безпосередньо у лямбда-виразі. - Лямбда повинна спочатку перевіряти ціну, а потім віднімати 13% від коректної суми.
- Використати list comprehension для застосування
apply_taxдо кожного елемента уprices.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат