filter()

Zwraca iterator elementów, dla których funkcja zwraca prawdę.

Zwraca
Iterator z elementami, które przeszły test.
Na tej stronie

Przykład

#
Python
scores = [45, 82, 67, 91, 30]
passed = list(filter(lambda s: s >= 60, scores))
print(passed)

values = ["Ania", "", None, "Kuba", 0]
print(list(filter(None, values)))
Wynikzapisany wynik, możesz go sprawdzić
[82, 67, 91]
['Ania', 'Kuba']

Definicja i zastosowanie

#

Funkcja filter(funkcja, kolekcja) przepuszcza tylko te elementy, dla których funkcja zwróci wartość prawdziwą. Wynik to iterator, który zwykle zamienia się na listę.

Jeśli zamiast funkcji podasz None, filter usunie wszystkie wartości fałszywe: zera, puste napisy, None i puste kolekcje.

Tak jak w przypadku map, wyrażenie listowe z if bywa czytelniejsze: [x for x in items if x > 0].

Składnia

#
Składnia
filter(funkcja, iterable)

Parametry

#
  • funkcja

    callable lub None

    Funkcja testująca albo None.
  • iterable

    kolekcja

    Elementy do przefiltrowania.

Dobre praktyki

#
  • filter(None, items) to szybki sposób na usunięcie pustych wartości.
  • Przy złożonych warunkach wyrażenie listowe jest czytelniejsze niż filter z lambdą.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.