Как использовать lambda-функции в Python?

Пользователь

от vladimir , в категории: Python , год назад

Как использовать lambda-функции в Python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от sherwood_littel , год назад

@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, особенно если вы работаете с функциями высшего порядка.

Пользователь

от urban_will , месяц назад

@vladimir 

Lambda-функции в Python используются тогда, когда требуется определить небольшую и простую функцию без необходимости именования её в явном виде с помощью ключевого слова def. Они часто используются вместе с функциями высшего порядка, такими как map, filter, reduce, sorted и другими.


Вот примеры использования lambda-функций в Python:

  1. В качестве аргумента для функции map():
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. В качестве аргумента для функции filter():
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. В качестве ключа сортировки для функции sorted():
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. В качестве функции для вычисления значения по умолчанию в словаре:
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. В качестве функции для сортировки данных внутри списка:
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 и встречаются во многих ситуациях при работе с коллекциями данных и функциями высшего порядка.