logo

Funkce Python filter().

Vestavěná funkce filter() v Pythonu je také mocná; pro provádění procedury filtrování dat na sekvencích, jako jsou seznamy, n-tice a řetězce. Funkce filter() se používá k aplikaci funkce na každý prvek iterovatelné položky (jako je seznam nebo n-tice) a vrácení další iterovatelnosti obsahující pouze prvky, pro které funkce vrací hodnotu True. Podél těchto řádků nám filter() umožňuje odfiltrovat prvky ze seskupení na základě nějaké podmínky. První argument může být None, pokud funkce není dostupná a vrací pouze prvky, které mají hodnotu True.

javafx na Eclipse

Syntax:

 filter (function, iterable) 

Parametry

funkce: Je to funkce. Pokud je nastaveno na None, vrátí pouze prvky, které mají hodnotu True.

Iterovatelné: Libovolná iterovatelná sekvence, jako je seznam, n-tice a řetězec.

Oba parametry jsou povinné.

Vrátit se

Vrací totéž, co vrátila funkce.

Podívejme se na několik příkladů funkce filter(), abychom porozuměli její funkčnosti.

Příklad funkce Python filter() 1

Tento jednoduchý příklad vrací hodnoty vyšší než 5 pomocí funkce filtru. Viz níže uvedený příklad.

přihrádka na bcd

Kód

 # Python filter() function example def filterdata(x): if x>5: return x # Calling function result = filter(filterdata,(1,2,6)) # Displaying result print(list(result)) 

Výstup:

[6] 

Kód definuje funkci nazvanou filterdata, která přebírá jeden argument x. V této funkci kontrolujeme, že x je větší než 5, a pokud je to pravda, vypíšeme x. Poté zavoláme funkci filter() a předáme data filtru jako hlavní argument a n-tici (1, 2, 6) jako následující argument. Funkce filter() aplikuje funkci filterdata() na každý prvek n-tice a vrátí iterátor, který obsahuje pouze prvky splňující podmínku x > 5. Nakonec iterátor převedeme na seznam pomocí funkce list(). a vytisknout výsledek.

Následuje několik dalších příkladů, jak používat metodu filter() v Pythonu:

Příklad 2:

Odfiltrujte prázdné řetězce ze seznamu:

Kód

 # Python filter() function example strings = [ '', 'hello', '', 'world', '' ] # Using filter() to remove empty strings from the list result = list(filter(lambda x: x != '', strings)) # Printing the result print(result) 

Výstup:

 [ 'hello', 'world' ] 

V tomto příkladu funkce lambda kontroluje v případě, že každý řetězec není prázdný, testováním za předpokladu, že je ekvivalentní prázdnému řetězci (''). Funkce filter() vrací další iterovatelný soubor obsahující pouze neprázdné řetězce.

numpy dot produkt

Příklad 3:

Odfiltrujte záporná čísla ze seznamu:

Kód

 # Python filter() function example numbers = [ 1, -2, 3, -4, 5, -6 ] # Using filter() to remove negative numbers from the list result = list(filter(lambda x: x >= 0, numbers)) # Printing the result print(result) 

Výstup:

 [1, 3, 5] 

V tomto příkladu funkce lambda zkontroluje za předpokladu, že každé číslo je nezáporné, testováním v případě, že je výraznější nebo ekvivalentní nule (0). Funkce filter() vrací další iterovatelný soubor obsahující pouze nezáporná čísla.

Příklad 4:

Odfiltrujte duplikáty ze seznamu:

Kód

linux přejmenovat adresář
 # Python filter() function example numbers = [ 1, 2, 3, 2, 4, 3, 5 ] # Using filter() to remove duplicate numbers from the list result = list(filter(lambda x: numbers.count(x) == 1, numbers)) # Printing the result print(result) 

Výstup:

 [ 1, 4, 5 ] 

V tomto příkladu funkce lambda kontroluje, zda se každé číslo v seznamu čísel objeví pouze jednou, a to tak, že počítá, jak často se zobrazuje (numbers.count(x)) a testuje v případě, že je počet ekvivalentní 1. Funkce filter() vrací další iterovatelnou část obsahující pouze jedinečná čísla.

Poznámka: Je důležité, že v Pythonu 3 funkce filter() vrací iterovatelnou, což znamená, že ji opravdu chcete úplně změnit na seznam (jak je zobrazeno v příkladech výše), abyste ji zahrnuli jako seznam. Nicméně v Pythonu 2 funkce filter() samozřejmě vrací seznam.

Závěr:

A konečně, funkce filter() je mocný nástroj pro manipulaci s daty v Pythonu. Filtrováním iterovatelného na základě předem definované podmínky můžete rychle a efektivně oddělit data, která skutečně chcete. Podobně můžete použít filter() v kombinaci s dalšími funkcemi Pythonu k provádění složitějších manipulací s daty.