W Pythonie, funkcje filter
, reduce
, i map
to potężne narzędzia służące do przetwarzania kolekcji (takich jak listy). Umożliwiają one efektywne przeprowadzanie operacji takich jak filtrowanie elementów, redukcja kolekcji do pojedynczej wartości, czy aplikowanie funkcji do każdego elementu kolekcji. W tym artykule przyjrzymy się tym funkcjom bliżej, przedstawiając ich zastosowanie na przykładzie kodu Pythona.
Przykład kodu Pythona z użyciem filter, reduce, i map
Zacznijmy od przykładu, który ilustruje, jak używać filter
, reduce
, i map
w praktyce.
from functools import reduce
# Lista numerów do przetworzenia
numbers = [1, 2, 3, 4, 5, 6]
# Funkcja do filtrowania parzystych liczb
def isEven(number):
return number % 2 == 0
# Funkcja do mnożenia dwóch liczb
def multiply(x, y):
return x * y
# Funkcja zwiększająca liczbę o 1
def increment(number):
return number + 1
# Użycie filter do wybrania tylko parzystych liczb
evenNumbers = list(filter(isEven, numbers))
# Użycie reduce do obliczenia iloczynu liczb
productOfNumbers = reduce(multiply, numbers)
# Użycie map do zwiększenia każdej liczby o 1
incrementedNumbers = list(map(increment, numbers))
# Wyświetlenie wyników
print("Parzyste liczby:", evenNumbers)
print("Iloczyn liczb:", productOfNumbers)
print("Liczby zwiększone o 1:", incrementedNumbers)
Wyjaśnienie kodu
- Użycie
filter
: Funkcjafilter
przyjmuje funkcjęisEven
, która zwracaTrue
dla parzystych liczb iFalse
dla nieparzystych, oraz kolekcjęnumbers
.filter
zwraca nową kolekcję zawierającą tylko te elementy, dla których funkcjaisEven
zwróciłaTrue
. - Użycie
reduce
:reduce
przyjmuje funkcjęmultiply
, która mnoży dwa argumenty, oraz kolekcjęnumbers
. Funkcjareduce
aplikuje funkcjęmultiply
do elementów kolekcji krok po kroku, redukując kolekcję do pojedynczej wartości – w tym przypadku iloczynu wszystkich liczb. - Użycie
map
: Funkcjamap
przyjmuje funkcjęincrement
, która zwiększa liczbę o 1, oraz kolekcjęnumbers
.map
zwraca nową kolekcję, w której każdy element jest wynikiem aplikacji funkcjiincrement
do odpowiadającego mu elementu w kolekcji wejściowej.
Podsumowanie
Funkcje filter
, reduce
, i map
to potężne narzędzia w Pythonie, które umożliwiają efektywne przetwarzanie kolekcji danych. filter
pozwala na filtrowanie kolekcji według określonego kryterium, reduce
redukuje kolekcję do pojedynczej wartości na podstawie określonej operacji, a map
aplikuje funkcję do każdego elementu kolekcji, tworząc nową kolekcję wynikową. Te funkcje, wykorzystując przekazywanie funkcji jako argumentów, umożliwiają pisanie kodu w sposób bardziej zwięzły i czytelny, co jest kluczowe w efektywnym programowaniu.
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.