logo

filtras () python

Filtro() metodas filtruoja nurodytą seką, naudodamas funkciją, kuri patikrina, ar kiekvienas sekos elementas yra teisingas, ar ne.

Python filtras() Sintaksė

Filtro() metodas in Python turi tokią sintaksę:



Sintaksė: filtras (funkcija, seka)

Parametrai:

metų mėnuo
  • funkcija: funkcija, kuri patikrina, ar kiekvienas sekos elementas yra teisingas, ar ne.
  • seka: seka, kurią reikia filtruoti, tai gali būti bet kurių iteratorių rinkiniai, sąrašai, eilės arba konteineriai.

Grąžinimai: iteratorius, kuris jau yra filtruotas.



Python filtro funkcijų pavyzdžiai

Pažiūrėkime kelis Python funkcijos filtras () pavyzdžius.

Python filtro funkcija su pasirinktine funkcija

Šiame pavyzdyje mes naudojame filtro funkciją kartu su pasirinktine funkcija linksma() išfiltruoti balses iš Python sąrašas .

Python






# 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)>

>

>

kas yra hibernate java

Išvestis:

The filtered letters are: e e>

Filtro funkcija Python su Lambda

Python filter() funkcija paprastai naudojama su Lambda funkcijos . Šiame pavyzdyje mes naudojame lambda funkciją, kad iš sąrašo išfiltruotume nelyginius ir lyginius skaičius.

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))>

>

java eilutę char

>

Išvestis:

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

Filtro funkcija Python su Lambda ir pasirinktine funkcija

Šioje programoje naudosime abi pasirinktines funkcijas yra_daugelis_iš_3() taip pat lambda funkcija. Funkcija filtras() naudojama šiai funkcijai taikyti kiekvienam skaičių sąrašo elementui, o funkcija lambda naudojama kartoti kiekvieną sąrašo elementą prieš taikant sąlygą. Tokiu būdu, prieš taikydami sąlygą, su kiekvienu elementu galime atlikti papildomas operacijas.

Python3




# 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)>

>

>

kiek nulių 1 mlrd
Išvestis

[3, 6, 9]>

Laiko sudėtingumo analizė

  1. Filtro funkcija naudojama skaičių sąrašui filtruoti ir kiekvienam sąrašo elementui pritaiko lambda funkciją. Filtro funkcijos laiko sudėtingumas yra O(n), kur n yra elementų skaičius sąraše.
  2. Lambda funkcijos laiko sudėtingumas yra pastovus, O(1), nes ji atlieka tik vieną aritmetinę operaciją. Todėl bendras programos laiko sudėtingumas yra O(n).

Pagalbinės erdvės analizė

Programa naudoja sąrašą filtruotiems skaičiams saugoti, todėl erdvės sudėtingumas yra proporcingas išfiltruotų skaičių skaičiui. Blogiausiu atveju, jei visi skaičiai yra 3 kartotiniai, filtruojamas sąrašas turės n/3 elementų. Todėl erdvės sudėtingumas yra O (n / 3), o tai supaprastina iki O (n) dideliu O žymėjimu.