single
Filter-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.
123456def is_even(n): return n % 2 == 0 numbers = [1, 2, 3, 4, 5, 6] even_numbers = list(filter(is_even, numbers)) print(even_numbers)
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.
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.
Pyyhkäise aloittaaksesi koodauksen
Tulet käyttämään filter-funktiota valitaksesi positiiviset luvut listasta.
is_positive-funktion tulee palauttaaTrue, jos argumentti on suurempi kuin nolla, jaFalsemuussa 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
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme