SAMOUCZEK JĘZYKA PYTHON | ROZDZIAŁY |
Rozdział 4: Struktury danych. 4: Mechanizmy programowania funkcjonalnego - 5: Rozszerzenie składni listy - 6: Instrukcje del 7: Listy niemutowalne i sekwencyjne - 8: Słownik - 9: Jeszcze trochę o warunkach 10: Porównanie sekwencji i innych typów Lekcja 4. Mechanizmy programowania funkcjonalnego.Istnieją trzy, bardzo użyteczne przy pracy z listami, funkcje: filter(), map(), i reduce(). "filter(funkcja, sekwencja)"zwraca sekwencje (tego samego typu, gdy to możliwe) zawierającą te elementy z listy wejściowej, dla których wywołanie
"map(funkcja, sekwencja)" wywołuje
Przekazana może zostać więcej, niż jedna sekwencja -- funkcja funkcja musi mieć wtedy tyle argumentów, ile zostało podanych sekwencji i jest wywoływana z poszczególnym elementem z każdej sekwencji wejściowej (lub z Składając te dwa przypadki zauważmy, iż "map(None, lista1, lista2)" jest wygodnym sposobem przekształcenia pary list w listę par. Na przykład:
"reduce(funkcja, sekwencja)" zwraca pojedynczą wartość, która powstała w wyniku: wywołania dwu-parametrowej funkcji funkcja dla dwóch pierwszych elementów sekwencji, potem dla wyniku tego działania i następnego elementu sekwencji itd. Na przykład, aby obliczyć sumę liczb od 1 do 10:
Jeśli istnieje tylko jeden element w sekwencji, zwracana jest jego wartość. Jeżeli sekwencja jest pusta, zgłaszany jest wyjątek. Można przekazać początkową wartość jako trzeci argument wywołania. W tym przypadku wartość ta jest zwracana, gdy sekwencja jest pusta. Funkcja jest stosowana dla wartości początkowej i pierwszego elementu sekwencji, a następnie wynik tej operacji stanowi argument wejściowy wraz z następnym elementem itd. Oto przykład:
|
|