Sobes.tech
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.