Python zapewnia wiele wbudowanych funkcji, które są wstępnie zdefiniowane i mogą być używane przez użytkownika końcowego, po prostu wywołując je. Funkcje te nie tylko ułatwiają pracę programistom, ale także tworzą standardowe środowisko kodowania. W tym artykule dowiesz się o trzech tak imponujących funkcjach, a mianowicie map (), filtrowaniu i ograniczaniu () w .
Zanim przejdziemy dalej, spójrzmy na zawartość:
- Co to są funkcje mapowania, filtrowania i redukcji w Pythonie?
- Korzystanie z funkcji zdefiniowanych przez użytkownika i funkcji lambda w:
- Używając funkcji map (), filter () i redukuj () razem ze sobą
Więc zacznijmy. :)
Co to są funkcje map (), filter () i redukuj () w Pythonie?
Jak wspomniano wcześniej, map (), filter () i redukuj () są wbudowane Pythona. Funkcje te umożliwiają funkcjonalny aspekt programowania . W programowaniu funkcyjnym przekazane argumenty są jedynymi czynnikami decydującymi o wyniku. Funkcje te mogą przyjmować dowolną inną funkcję jako parametr i mogą być również dostarczane do innych funkcji jako parametry. Przyjrzyjmy się teraz dokładniej każdej z tych funkcji.
Funkcja map ():
Funkcja map () jest typem wyższego rzędu. Jak wspomniano wcześniej, ta funkcja przyjmuje inną funkcję jako parametr wraz z sekwencją iterowalnych i zwraca dane wyjściowe po zastosowaniu funkcji do każdej iterowalnej funkcji obecnej w sekwencji. Jego składnia jest następująca:
SKŁADNIA:
mapa (funkcja, iterowalne)
Tutaj funkcja definiuje wyrażenie, które z kolei jest stosowane do iterowalnych. Funkcja mapy może również przyjmować funkcje zdefiniowane przez użytkownika funkcje lambda jako parametr.
Korzystanie z funkcji zdefiniowanych przez użytkownika i Lambda w:
Funkcje zdefiniowane przez użytkownika w map ():
Funkcja map () może przyjmować funkcje zdefiniowane przez użytkownika jako parametry. Parametry tych funkcji są ustawiane wyłącznie przez użytkownika lub programistę. Na przykład:
PRZYKŁAD:
def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x jest obiektem mapy print (x) print (set (x))
WYNIK:
{16, 1, 4, 9}
Jak widać, x jest obiektem mapy. Następna część wyjściowa wyświetla funkcję map, która przyjmuje newfunc () jako parametr, a następnie stosuje a * a do wszystkich iterable. W rezultacie wartości wszystkich iterable są mnożone przez siebie i zwracane.
UWAGA: Dane wyjściowe nie są w kolejności wartości iterowalnych, ponieważ użyłem funkcji set (). Możesz także użyć funkcji list () lub tuple (), na przykład:
PRZYKŁAD:
def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x jest obiektem mapy print (x) print (list (x))
WYNIK:
[1, 4, 9, 16]
Możesz również przekazać więcej niż jedną listę parametrów. Na przykład:
PRZYKŁAD:
def func (a, b): return a + b a = map (func, [2, 4, 5], [1,2,3]) print (a) print (tuple (a))
WYNIK:
(3, 6, 8)
Zobaczmy teraz, jak możesz użyć funkcje lambda w funkcji map ().
jak skompilować programy java
Funkcje lambda w map ():
Funkcje lambda to funkcje, które mają dowolną nazwę. Funkcje te są często dostarczane jako parametry innych funkcji. Teraz spróbujmy osadzić funkcje lambda w funkcji map (). Rozważmy następujący przykład:
PRZYKŁAD:
tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = tuple (map (lambda x: x + 3, tup)) print (newtuple)
WYNIK:
(8, 10, 25, 100, 57, 65, 80, 26, 76, 64)
Powyższe dane wyjściowe są wynikiem zastosowania wyrażenia lambda (x + 3) do każdego elementu znajdującego się w krotce.
Funkcja filter ():
Funkcja filter () służy do tworzenia listy wyjściowej składającej się z wartości, dla których funkcja zwraca wartość true. Składnia jest następująca:
SKŁADNIA:
filtr (funkcja, iterowalne)
Podobnie jak map (), ta funkcja może być również używana jako parametr jako funkcje zdefiniowane przez użytkownika, a także funkcje lambda.
PRZYKŁAD:
def func (x): if x> = 3: return x y = filter (func, (1,2,3,4)) print (y) print (list (y))
WYNIK:
[3. 4]
Jak widać, y jest obiektem filtru, a lista jest listą wartości, które są prawdziwe dla warunku (x> = 3).
Używanie lambda w filtrze ():
Funkcja lambda używana jako parametr w rzeczywistości definiuje warunek, który ma zostać sprawdzony. Na przykład:
PRZYKŁAD:
y = filter (lambda x: (x> = 3), (1,2,3,4)) print (list (y))
WYNIK: [3. 4]
Powyższy kod daje te same dane wyjściowe, co poprzednia funkcja.
Funkcja redukuj ():
Funkcja redukuj (), jak sama nazwa wskazuje, stosuje daną funkcję do elementów iteracyjnych i zwraca pojedynczą wartość.
Składnia tej funkcji jest następująca:
SKŁADNIA:
redukcja (funkcja, iterowalne)
Funkcja w tym miejscu definiuje, jakie wyrażenie należy zastosować do iterowalnych. Ta funkcja musi zostać zaimportowana z functools moduł . Na przykład:
PRZYKŁAD:
z functools import zmniejsz redukuj (lambda a, b: a + b, [23,21,45,98])
WYNIK: 187
W powyższym przykładzie funkcja redukuj sukcesywnie dodaje każdą iterację obecną na liście i zwraca pojedyncze wyjście.
Funkcji map (), filter () i redukuj () w Pythonie można używać razem.
Używając razem funkcji map (), filter () i redukuj ():
Kiedy to zrobisz, najpierw rozwiązywane są funkcje wewnętrzne, a następnie funkcje zewnętrzne działają na wyjściu funkcji wewnętrznych.
Spróbujmy najpierw przekazać funkcję filter () jako parametr do funkcji map ().
Korzystanie z funkcji filter () w map ():
Kod podany poniżej najpierw sprawdza, czy warunek (x> = 3) jest prawdziwy dla elementów iteracyjnych. Następnie dane wyjściowe są mapowane za pomocą funkcji map ().
PRZYKŁAD:
c = map (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4))) print (list (c))
WYNIK: [6, 8]
Jeśli odfiltrujesz liczby całkowite większe lub równe 3 z danej krotki, jako wynik otrzymasz [3,4]. Następnie, jeśli zmapujesz to za pomocą warunku (x + x), otrzymasz [6,8], które jest wynikiem.
Korzystanie z map () w filtrze ():
Kiedy używasz funkcji map () w funkcji filter (), iterowalne są najpierw obsługiwane przez funkcję map, a następnie stosowany jest do nich warunek filter ().
PRZYKŁAD:
c = filter (lambda x: (x> = 3), map (lambda x: x + x, (1,2,3,4))) #lambda x: (x> = 3) print (list (c) )
WYNIK: [4, 6, 8]
Korzystanie z map () i filter () w ciągu redukuj ():
Wyjście funkcji wewnętrznych jest redukowane zgodnie z warunkiem dostarczonym do funkcji redukuj ().
PRZYKŁAD:
d = redukuj (lambda x, y: x + y, map (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4)))) print (d)
WYNIK: 14
Wynik jest wynikiem działania [6,8], które jest wynikiem funkcji wewnętrznej map () i filter ().
Dzięki temu dotarliśmy do końca tego artykułu na temat map (), filter () i redukcji funkcji w Pythonie. Mam nadzieję, że wszystko zrozumiałeś. Upewnij się, że ćwiczysz jak najwięcej i cofnij swoje doświadczenie.
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy w tym blogu „map (), filter () i redukuj () Funkcje w Pythonie”, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.
Aby uzyskać dogłębną wiedzę na temat języka Python i jego różnych aplikacji, możesz zarejestrować się na żywo z całodobowym wsparciem i dożywotnim dostępem.