Funkcje lambda w Pythonie, często określane jako anonimowe funkcje, są jedną z kluczowych funkcji języka, oferujących szybki i wygodny sposób na definiowanie małych, jednolinijkowych funkcji. W tym artykule przyjrzymy się, dlaczego funkcje lambda są tak przydatne, zwłaszcza w operacjach na listach, filtracji danych i aplikacjach funkcji wyższego rzędu.
Kompletny przykład kodu z użyciem funkcji lambda
Załóżmy, że mamy listę słowników reprezentujących książki, gdzie każdy słownik zawiera tytuł książki i jej rok wydania. Naszym zadaniem jest filtrowanie tej listy, aby uzyskać tylko te książki, które zostały wydane po roku 2000, a następnie posortowanie ich według roku wydania w porządku rosnącym. Pokażemy, jak to zrobić, wykorzystując funkcje lambda.
# Definicja listy książek
books = [
{"title": "Python Programming", "year": 2015},
{"title": "Learn Java", "year": 1999},
{"title": "Web Development with Django", "year": 2020},
{"title": "C++ for Beginners", "year": 1998}
]
# Filtrowanie książek wydanych po roku 2000
books_after_2000 = list(filter(lambda book: book["year"] > 2000, books))
# Wykorzystujemy funkcję lambda w filter do sprawdzenia,
# czy rok wydania książki jest większy niż 2000
# Sortowanie przefiltrowanych książek według roku wydania
sorted_books = sorted(books_after_2000, key=lambda book: book["year"])
# Wykorzystujemy funkcję lambda w sorted jako klucz sortowania
# Wyświetlenie posortowanych książek
for book in sorted_books:
print(f"{book['title']} - {book['year']}")
W powyższym przykładzie użyliśmy funkcji lambda dwukrotnie: raz w funkcji filter()
do filtrowania listy książek i raz w funkcji sorted()
do sortowania listy według roku wydania. Dzięki temu kod jest krótki, czytelny i skoncentrowany na wykonaniu konkretnego zadania bez potrzeby definiowania dodatkowych funkcji.
Podsumowanie
Funkcje lambda w Pythonie są niezwykle przydatne ze względu na swoją zwięzłość i elastyczność. Pozwalają na szybkie tworzenie małych funkcji, które mogą być używane w miejscu, bez konieczności definiowania standardowej funkcji za pomocą słowa kluczowego def
. Szczególnie sprawdzają się one w przypadkach, gdy potrzebujemy prostych operacji wykonywanych na danych, takich jak filtrowanie, sortowanie czy aplikowanie funkcji do elementów listy. Dzięki funkcjom lambda kod staje się bardziej pythoniczny, czyli bliższy idei i stylowi języka Python, co przekłada się na większą czytelność i efektywność pisanych programów.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Python w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.