Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Filter-Funktion Käytössä | Korkeamman asteen funktiot ja lambdat
Funktionaalisen Ohjelmoinnin Käsitteet Pythonissa
Osio 2. Luku 3
single

single

bookFilter-Funktion Käytössä

Pyyhkäise näyttääksesi valikon

Olet jo nähnyt, kuinka korkeamman asteen funktiot kuten map mahdollistavat funktion soveltamisen jokaiseen jonon alkioon. Toinen olennainen korkeamman asteen funktio Pythonissa on filter.

filter-funktiota käytetään valitsemaan jonon alkiot sen perusteella, täyttävätkö ne tietyn ehdon. Se ottaa kaksi argumenttia: funktion, joka palauttaa True tai False jokaiselle alkiolle, sekä suodatettavan jonon. Tuloksena on iteraattori, joka sisältää vain ne alkiot, joille funktio palauttaa True. Tämä tekee filter-funktiosta erityisen hyödyllisen, kun halutaan poimia tiettyjä alkioita listasta, tuplesta tai muusta iteroitavasta rakenteesta jonkin kriteerin, kuten parillisten lukujen, positiivisten arvojen tai tietyn pituisten merkkijonojen perusteella.

123456
def is_even(n): return n % 2 == 0 numbers = [1, 2, 3, 4, 5, 6] even_numbers = list(filter(is_even, numbers)) print(even_numbers)
copy

Tämä koodi käyttää filter()-funktiota luodakseen uuden listan, joka sisältää vain alkuperäisen kokoelman parilliset kokonaisluvut. Se toimii määrittelemällä predikaattifunktion, is_even(n). filter-funktio käy läpi numbers-listan, soveltaen tätä tarkistusta jokaiseen alkioon ja hyläten ne, jotka eivät täytä ehtoa. Lopuksi tuloksena saatu filter-objekti muunnetaan takaisin listaksi, jolloin saadaan lopputulos.

Note
Huomio

Kun käytät filter-funktiota, se palauttaa filter-olion, joka on iteraattori — ei lista. Jos tulostat filter-funktion tuloksen suoraan, näet tulosteen, joka näyttää tältä:

<filter object at 0xfffec885eb30>

Jos haluat käyttää suodatettuja arvoja listana, sinun täytyy muuntaa filter-olio käyttämällä list()-funktiota.

Tehtävä

Pyyhkäise aloittaaksesi koodauksen

Tulet käyttämään filter-funktiota valitaksesi positiiviset luvut listasta.

  • is_positive-funktion tulee palauttaa True, jos argumentti on suurempi kuin nolla, ja False muussa tapauksessa.
  • filter_positive-funktion tulee käyttää filter-funktiota yhdessä is_positive-funktion kanssa luodakseen uuden listan, joka sisältää vain positiiviset luvut syötelistasta.
  • Funktion tulee palauttaa tämä uusi lista.
  • Muista poistaa pass.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 3
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

some-alt