Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Filter-Funksjonen i Bruk | Høyereordensfunksjoner og Lambdaer
Funksjonelle Programmeringskonsepter i Python
Seksjon 2. Kapittel 3
single

single

bookFilter-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.

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

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.

Note
Merk

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

Oppgave

Sveip for å begynne å kode

Du skal bruke filter-funksjonen for å velge ut positive tall fra en liste.

  • Funksjonen is_positive skal returnere True hvis argumentet er større enn null, og False ellers.
  • Funksjonen filter_positive skal bruke filter-funksjonen sammen med is_positive for å lage en ny liste som kun inneholder de positive tallene fra input-listen.
  • Funksjonen skal returnere denne nye listen.
  • Husk å fjerne pass.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 3
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

some-alt