single
Filter-Funksjonen i Bruk
Sveip for å vise menyen
Du har allerede sett hvordan høyereordensfunksjoner som map lar deg anvende en funksjon på hvert element i en sekvens. En annen viktig høyereordensfunksjon i Python er filter.
filter-funksjonen brukes til å velge ut elementer fra en sekvens basert på om de oppfyller en bestemt betingelse. Den tar to argumenter: en funksjon som returnerer True eller False for hvert element, og sekvensen som skal filtreres. Resultatet er en iterator som kun inneholder de elementene hvor funksjonen returnerer True. Dette gjør filter spesielt nyttig når du ønsker å hente ut spesifikke elementer fra en liste, tuppel eller annen itererbar struktur basert på et kriterium, som for eksempel partall, positive verdier eller strenger med en viss lengde.
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)
Denne koden bruker filter()-funksjonen til å lage en ny liste som kun inneholder de partallsverdiene fra en eksisterende samling. Dette gjøres ved å definere en predikatfunksjon, is_even(n). filter-funksjonen itererer gjennom listen numbers, anvender denne sjekken på hvert element og forkaster de som ikke oppfyller betingelsen. Til slutt konverteres det resulterende filter-objektet tilbake til en liste, som gir det endelige resultatet.
Når du bruker filter-funksjonen, returnerer den et filter-objekt, som er en iterator — ikke en liste. Hvis du skriver ut resultatet av filter direkte, vil du se utdata som ligner på:
<filter object at 0xfffec885eb30>
For å få tilgang til de filtrerte verdiene som en liste, må du konvertere filter-objektet ved å bruke list().
Sveip for å begynne å kode
Du skal bruke filter-funksjonen for å velge ut positive tall fra en liste.
- Funksjonen
is_positiveskal returnereTruehvis argumentet er større enn null, ogFalseellers. - Funksjonen
filter_positiveskal brukefilter-funksjonen sammen medis_positivefor å lage en ny liste som kun inneholder de positive tallene fra input-listen. - Funksjonen skal returnere denne nye listen.
- Husk å fjerne
pass.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår