Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Лямбда-функції | Рекурсія та лямбда-функції
Підручник з функцій Python
Секція 5. Розділ 4
single

single

bookЛямбда-функції

Свайпніть щоб показати меню

Лямбда-функції — це анонімні функції, тобто вони не мають імені. Вони створюються за допомогою ключового слова 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
copy

Умовна логіка у лямбда-функціях

Можна використовувати тернарний вираз для додавання умовної логіки всередині лямбда-функції:

123
is_even = lambda x: "even" if x % 2 == 0 else "odd" print(is_even(4)) # "even" print(is_even(7)) # "odd"
copy

Використання лямбда з вбудованими функціями

Поширений випадок використання — поєднання лямбда-функцій із вбудованими функціями, такими як map() та filter():

123456789
prices = [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]
copy

Можна також використовувати max() всередині lambda для обробки крайових випадків безпосередньо у виразі:

123
safe_value = lambda x: max(x, 0) # Returns 0 if x is negative print(safe_value(-5)) # 0 print(safe_value(10)) # 10
copy
lambda
Note
Примітка

Лямбда-функції найкраще підходять для короткої логіки з одним виразом. Якщо функція потребує кількох рядків або складної логіки, доцільніше використовувати звичайну функцію def.

Завдання

Проведіть, щоб почати кодувати

Є список цін (prices), і потрібно реалізувати лямбда-вираз, який приймає ціну як параметр і віднімає 13% податку від неї.

  1. Визначити лямбда-вираз за допомогою ключового слова lambda.
  2. Лямбда-вираз повинен приймати один параметр (price).
  3. Якщо price від’ємна, вважати її некоректною та повертати 0 за допомогою функції max() безпосередньо у лямбда-виразі.
  4. Лямбда повинна спочатку перевіряти ціну, а потім віднімати 13% від коректної суми.
  5. Використати list comprehension для застосування apply_tax до кожного елемента у prices.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 4
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

some-alt