В Python лямбда-функція (або “анонімна функція”) — це спеціальний тип функції без імені. Наприклад:
|
1 |
lambda : print('Hello, World!') |
Тут ми створили лямбда-функцію, яка виводить текст Hello, World!.
Оголошення лямбда-функції в Python
Ключове слово lambda (замість def) використовується для створення лямбда-функції. Синтаксис оголошення лямбда-функції:
|
1 |
lambda аргумент(и) : вираз |
Тут:
аргумент(и) — будь-яке значення, яке передається лямбда-функції;
вираз — цей стейтмент виконується та повертається.
Розглянемо приклад:
|
1 |
greet = lambda : print('Hello, World!') |
Тут ми визначили лямбда-функцію, яку присвоїли змінній з іменем greet.
Щоб виконати цю лямбда-функцію нам потрібно її викликати. Ось як ми можемо викликати лямбда-функцію:
|
1 2 |
# Викликаємо лямбда-функцію greet() |
Дана лямбда-функція просто виводить текст Hello, World!.
Примітка: Ця лямбда-функція не має аргументів.
Розглянемо приклад виклику лямбда-функції в Python:
|
1 2 3 4 5 |
# Оголошуємо лямбда-функцію greet = lambda : print('Hello, World!') # Викликаємо лямбда-функцію greet() |
Результат:
Hello, World!
Тут ми визначили лямбда-функцію та присвоїли її змінній greet. Коли ми викликаємо лямбда-функцію, виконується функція print() всередині лямбда-функції.
Лямбда-функція з аргументами в Python
Як і звичайні функції, лямбда-функція також може приймати аргументи. Наприклад:
|
1 2 3 4 5 |
# Лямбда-функція, яка приймає 1 аргумент greet_user = lambda name : print('Hey there,', name) # Виклик лямбда-функції greet_user('Delilah') |
Результат:
Hey there, Delilah
Тут ми присвоїли лямбда-функцію змінній greet_user. name після ключового слова lambda вказує на те, що лямбда-функція приймає аргумент з іменем name.
Зверніть увагу на виклик лямбда-функції:
|
1 |
greet_user('Delilah') |
Тут ми передали рядкове значення Delilah нашій лямбда-функції, яке відповідає аргументу name.
Як використовувати лямбда-функцію з filter()?
Функція filter() в Python приймає функцію та ітерований об’єкт (списки, кортежі та рядки) як аргументи. Функція викликається зі всіма елементами в списку, і повертається новий список, що містить елементи, для яких функція визначила значення True. Наприклад:
|
1 2 3 4 5 6 |
# Програма фільтрації лише парних елементів зі списку my_list = [1, 5, 4, 6, 8, 11, 3, 12] new_list = list(filter(lambda x: (x%2 == 0) , my_list)) print(new_list) |
Результат:
[4, 6, 8, 12]
Тут функція filter() повертає лише парні числа зі списку.
Як використовувати лямбда-функцію з map()?
Функція map() в Python приймає функцію та об’єкт, що ітерується (списки, кортежі та рядки) як аргументи. Функція викликається зі всіма елементами у списку і повертається новий список, який містить елементи, що повертаються цією функцією для кожного елемента.
Наприклад:
|
1 2 3 4 5 6 7 |
# Програма подвоєння значень кожного елемента списку за допомогою функції map() my_list = [1, 5, 4, 6, 8, 11, 3, 12] new_list = list(map(lambda x: x * 2 , my_list)) print(new_list) |
Результат:
[2, 10, 8, 12, 16, 22, 6, 24]
Тут функція map() подвоює значення елементів списку.

(26 оцінок, середня: 4,58 з 5)