logo

filter() w Pythonie

Metoda filter() filtruje podaną sekwencję za pomocą funkcji, która sprawdza, czy każdy element sekwencji jest prawdziwy, czy nie.

Składnia filter() Pythona

Metoda filter() w Pyton ma następującą składnię:

Składnia: filtr(funkcja, sekwencja)



Parametry:

samouczek c#
  • funkcjonować: funkcja sprawdzająca, czy każdy element ciągu jest prawdziwy, czy nie.
  • sekwencja: sekwencją, która ma zostać przefiltrowana, mogą to być zestawy, listy, krotki lub kontenery dowolnych iteratorów.

Zwroty: iterator, który jest już przefiltrowany.

Przykłady funkcji filtrów Pythona

Zobaczmy kilka przykładów funkcji filter() w Pythonie.

Funkcja filtru Pythona z funkcją niestandardową

W tym przykładzie używamy funkcji filtru wraz z funkcją niestandardową zabawa() aby odfiltrować samogłoski z Lista Pythona .

Pyton




# function that filters vowels> def> fun(variable):> >letters>=> [>'a'>,>'e'>,>'i'>,>'o'>,>'u'>]> >if> (variable>in> letters):> >return> True> >else>:> >return> False> # sequence> sequence>=> [>'g'>,>'e'>,>'e'>,>'j'>,>'k'>,>'s'>,>'p'>,>'r'>]> # using filter function> filtered>=> filter>(fun, sequence)> print>(>'The filtered letters are:'>)> for> s>in> filtered:> >print>(s)>

>

>

Wyjście:

The filtered letters are: e e>

Funkcja filtrowania w Pythonie z Lambdą

Funkcja filter() Pythona jest zwykle używana z Funkcje lambdy . W tym przykładzie używamy funkcji lambda do odfiltrowania liczb nieparzystych i parzystych z listy.

strony serwera Java

Python3




# a list contains both even and odd numbers.> seq>=> [>0>,>1>,>2>,>3>,>5>,>8>,>13>]> # result contains odd numbers of the list> result>=> filter>(>lambda> x: x>%> 2> !>=> 0>, seq)> print>(>list>(result))> # result contains even numbers of the list> result>=> filter>(>lambda> x: x>%> 2> =>=> 0>, seq)> print>(>list>(result))>

>

>

Wyjście:

[1, 3, 5, 13] [0, 2, 8]>

Funkcja filtra w Pythonie z Lambdą i funkcją niestandardową

W tym programie użyjemy obu funkcji niestandardowych is_multiple_of_3() jak również funkcję lambda. Funkcja filter() służy do stosowania tej funkcji do każdego elementu listy liczb, a funkcja lambda służy do iteracji po każdym elemencie listy przed zastosowaniem warunku. W ten sposób możemy wykonać dodatkowe operacje na każdym elemencie przed zastosowaniem warunku.

zaczyna się od Javy

Python3


warstwa sieciowa w sieciach komputerowych



# Define a function to check> # if a number is a multiple of 3> def> is_multiple_of_3(num):> >return> num>%> 3> =>=> 0> # Create a list of numbers to filter> numbers>=> [>1>,>2>,>3>,>4>,>5>,>6>,>7>,>8>,>9>,>10>]> # Use filter and a lambda function to> # filter the list of numbers and only> # keep the ones that are multiples of 3> result>=> list>(>filter>(>lambda> x: is_multiple_of_3(x), numbers))> # Print the result> print>(result)>

>

>

Wyjście

[3, 6, 9]>

Analiza złożoności czasu

  1. Funkcja filter służy do filtrowania listy liczb i stosuje funkcję lambda do każdego elementu listy. Złożoność czasowa funkcji filtrującej wynosi O(n), gdzie n jest liczbą elementów na liście.
  2. Złożoność czasowa funkcji lambda jest stała, O(1), ponieważ wykonuje ona tylko jedną operację arytmetyczną. Zatem całkowita złożoność czasowa programu wynosi O(n).

Analiza przestrzeni pomocniczej

Program wykorzystuje listę do przechowywania przefiltrowanych liczb, więc złożoność przestrzeni jest proporcjonalna do liczby przefiltrowanych liczb. W najgorszym przypadku, jeśli wszystkie liczby są wielokrotnościami 3, przefiltrowana lista będzie zawierać n/3 elementów. Dlatego złożoność przestrzenna wynosi O (n/3), co upraszcza się do O (n) w notacji dużego O.