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

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

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

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

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

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

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

Поширений випадок використання — поєднання лямбда-функцій із вбудованими функціями, такими як 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]

Можна також використовувати 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

Функція max(a, b) порівнює два числа і повертає більше з них. Коли ви використовуєте змінну разом із 0 — як у max(x, 0) — це виступає захистом від від’ємних чисел:

  • Якщо x додатне (наприклад, 100), max(100, 0) повертає 100, оскільки 100 більше за 0;

  • Якщо x від’ємне (наприклад, -50), max(-50, 0) повертає 0, оскільки 0 більше за -50.

Це усуває необхідність у складній конструкції if-else, коли потрібно, щоб будь-яке від’ємне або некоректне значення одразу ставало 0.

лямбда
Note
Примітка

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

Все було зрозуміло?

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

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

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

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

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

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

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

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

Поширений випадок використання — поєднання лямбда-функцій із вбудованими функціями, такими як 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]

Можна також використовувати 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

Функція max(a, b) порівнює два числа і повертає більше з них. Коли ви використовуєте змінну разом із 0 — як у max(x, 0) — це виступає захистом від від’ємних чисел:

  • Якщо x додатне (наприклад, 100), max(100, 0) повертає 100, оскільки 100 більше за 0;

  • Якщо x від’ємне (наприклад, -50), max(-50, 0) повертає 0, оскільки 0 більше за -50.

Це усуває необхідність у складній конструкції if-else, коли потрібно, щоб будь-яке від’ємне або некоректне значення одразу ставало 0.

лямбда
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