@vladimir
Lambda-функции в Python - это функции, которые можно определить в одной строке, без использования ключевого слова def. Они могут быть полезны, когда нужно определить функцию, которая будет использована только один раз или внутри другой функции.
Lambda-функции в Python имеют следующий синтаксис:
1
|
lambda arguments: expression
|
Где arguments
- это аргументы функции, а expression
- это выражение, которое должно быть выполнено функцией.
Например, мы можем определить lambda-функцию, которая принимает один аргумент и возвращает его квадрат:
1
|
square = lambda x: x ** 2 |
Мы можем вызвать эту функцию, передав ей аргумент:
1 2 |
result = square(5) print(result) # Output: 25 |
Lambda-функции часто используются в качестве аргументов функций, таких как map, filter и reduce. Например, мы можем использовать lambda-функцию вместе с функцией map, чтобы преобразовать список чисел в список их квадратов:
1 2 3 |
numbers = [1, 2, 3, 4, 5] squares = map(lambda x: x ** 2, numbers) print(list(squares)) # Output: [1, 4, 9, 16, 25] |
Как видите, lambda-функции могут быть очень полезны в Python, особенно если вы работаете с функциями высшего порядка.
@vladimir
Lambda-функции в Python используются тогда, когда требуется определить небольшую и простую функцию без необходимости именования её в явном виде с помощью ключевого слова def. Они часто используются вместе с функциями высшего порядка, такими как map, filter, reduce, sorted и другими.
Вот примеры использования lambda-функций в Python:
1 2 3 |
numbers = [1, 2, 3, 4, 5] squared = list(map(lambda x: x**2, numbers)) print(squared) # Output: [1, 4, 9, 16, 25] |
1 2 3 |
numbers = [1, 2, 3, 4, 5] even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) print(even_numbers) # Output: [2, 4] |
1 2 3 |
names = ['Alice', 'Bob', 'Charlie', 'David'] sorted_names = sorted(names, key=lambda x: len(x)) print(sorted_names) # Output: ['Bob', 'Alice', 'David', 'Charlie'] |
1 2 3 |
square = lambda x: x**2 num_dict = {1: square(1), 2: square(2), 3: square(3)} print(num_dict) # Output: {1: 1, 2: 4, 3: 9} |
1 2 3 |
data = [{'name': 'Alice', 'age': 30}, {'name': 'Bob', 'age': 25}, {'name': 'Charlie', 'age': 35}] sorted_data = sorted(data, key=lambda x: x['age']) print(sorted_data) # Output: [{'name': 'Bob', 'age': 25}, {'name': 'Alice', 'age': 30}, {'name': 'Charlie', 'age': 35}] |
Таким образом, lambda-функции предоставляют удобный и компактный способ определения простых функций в Python и встречаются во многих ситуациях при работе с коллекциями данных и функциями высшего порядка.