Junior
Czym jest wyrażenie lambda w Pythonie?
sobes.tech AI
Odpowiedź od AI
Wyrażenie lambda w Pythonie to anonimowa funkcja zdefiniowana za pomocą słowa kluczowego lambda. Ma prostą składnię: lambda arguments: expression.
Główne cechy:
- Anonimowość: Nie ma nazwy.
- W jednej linii: Musi być umieszczone w jednej linii kodu.
- Jedno wyrażenie: Może zawierać tylko jedno wyrażenie, którego wynik jest zwracany.
- Może przyjmować dowolną liczbę argumentów: Ale tylko jedno wyrażenie.
Przykłady użycia:
# Prosta funkcja lambda do podwajania liczby
double = lambda x: x * 2
# Użycie:
# print(double(5)) # Wyświetli 10
# Funkcja lambda z wieloma argumentami
add = lambda a, b: a + b
# Użycie:
# print(add(3, 7)) # Wyświetli 10
# Użycie lambda z funkcjami wyższego rzędu
# Na przykład, filter()
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
# print(even_numbers) # Wyświetli [2, 4, 6]
# Użycie lambda z map()
squared_numbers = list(map(lambda x: x**2, numbers))
# print(squared_numbers) # Wyświetli [1, 4, 9, 16, 25, 36]
# Użycie lambda jako argumentu dla klucza w sorted()
data = [{'name': 'Alice', 'age': 30}, {'name': 'Bob', 'age': 25}]
sorted_data_by_age = sorted(data, key=lambda item: item['age'])
# print(sorted_data_by_age) # Wyświetli posortowaną listę według wieku
Wyrażenia lambda są przydatne dla małych, jednorazowych funkcji, często używanych w połączeniu z funkcjami wyższego rzędu (map, filter, sorted). Jednak dla bardziej złożonych zadań lub funkcji wymagających dokumentacji (docstrings) zaleca się używanie zwykłych funkcji zdefiniowanych za pomocą def.