Pierwsze kroki z funkcjami lambda w języku Python

Mar 03 2023
Dzisiaj dowiemy się o unikalnym narzędziu w Pythonie o nazwie „lambda”. To może brzmieć jak duże słowo, ale w rzeczywistości jest bardzo łatwe w użyciu.
Zdjęcie Richa Terveta na Unsplash

Dzisiaj dowiemy się o unikalnym narzędziu w Pythonie o nazwie „lambda”. To może brzmieć jak duże słowo, ale w rzeczywistości jest bardzo łatwe w użyciu.

Czym więc jest lambda? Mówiąc prościej, lambda to sposób na tworzenie małych funkcji w Pythonie bez nazywania ich. To jak skrót!

Spójrzmy na przykład. Powiedzmy, że chcesz dodać dwie liczby razem w Pythonie. Możesz napisać taką funkcję:

def add_numbers(x, y):
    return x + y

Ale co, jeśli potrzebujesz użyć tej funkcji tylko raz i nie chcesz nadawać jej nazwy? Tutaj z pomocą przychodzi lambda!

Zamiast pisać pełną funkcję, możesz użyć lambda do stworzenia małej funkcji w locie. Oto jak to wygląda:

lambda x, y: x + y

Oto kolejny przykład użycia funkcji lambda. Załóżmy, że masz listę nazwisk i chcesz je posortować alfabetycznie. Możesz napisać taką funkcję:

def sort_names(names):
    return sorted(names)

Ale co, jeśli potrzebujesz użyć tej funkcji tylko raz i nie chcesz nadawać jej nazwy? Możesz użyć lambda do stworzenia małej funkcji, która sortuje nazwy alfabetycznie. Oto jak to wygląda:

lambda names: sorted(names)

Jakie są więc korzyści z używania funkcji lambda w Pythonie?

  1. Zwięzły kod: funkcje Lambda pozwalają pisać kod, który jest bardziej zwięzły i łatwiejszy do odczytania. Ponieważ nie wymagają oddzielnej definicji i nazwy funkcji, możesz ich używać bezpośrednio w swoim kodzie, dzięki czemu jest on bardziej czytelny i mniej zaśmiecony.
  2. Kompozycja funkcji: Funkcji lambda można używać jako bloków konstrukcyjnych do tworzenia bardziej złożonych funkcji. Można ich używać do tworzenia funkcji wyższego rzędu, które przyjmują inne funkcje jako argumenty lub zwracają inne funkcje jako wartości. Pozwala to komponować funkcje w nowy i interesujący sposób.
  3. Jednorazowe użycie: Funkcje lambda są przydatne, gdy trzeba użyć funkcji tylko raz i nie chcesz tworzyć dla niej oddzielnej definicji funkcji. Może to zaoszczędzić czas i wysiłek, zwłaszcza jeśli funkcja jest prosta i nie trzeba jej ponownie używać w innych częściach kodu.
  4. Efektywne wykorzystanie pamięci: Ponieważ funkcje lambda nie mają nazwy, nie zajmują miejsca w pamięci w środowisku Pythona. Może to być szczególnie przydatne podczas pracy z dużymi zestawami danych lub gdy problemem jest użycie pamięci.
  5. Szybkość: Funkcje lambda są zwykle szybsze do wykonania niż zwykłe funkcje, ponieważ nie wymagają wywoływania funkcji ani wyszukiwania. Może to być szczególnie przydatne, gdy pracujesz z dużymi zestawami danych lub gdy zależy Ci na wydajności.