Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Filter-Funktionen i Brug | Højereordensfunktioner og Lambdas
Funktionelle Programmeringskoncepter i Python
Sektion 2. Kapitel 3
single

single

bookFilter-Funktionen i Brug

Stryg for at vise menuen

Du har allerede set, hvordan højere-ordens funktioner som map gør det muligt at anvende en funktion på hvert element i en sekvens. En anden vigtig højere-ordens funktion i Python er filter.

Funktionen filter bruges til at udvælge elementer fra en sekvens baseret på, om de opfylder en bestemt betingelse. Den tager to argumenter: en funktion, der returnerer True eller False for hvert element, og den sekvens, der skal filtreres. Resultatet er en iterator, der kun indeholder de elementer, hvor funktionen returnerer True. Dette gør filter særligt nyttig, når du vil udtrække specifikke elementer fra en liste, tuple eller anden iterabel baseret på et kriterium, såsom lige tal, positive værdier eller strenge af en bestemt længde.

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 kode bruger funktionen filter() til at oprette en ny liste, der kun indeholder de lige heltal fra en eksisterende samling. Det fungerer ved at definere en prædikatsfunktion, is_even(n). filter-funktionen gennemløber listen numbers, anvender denne kontrol på hvert element og udelader dem, der ikke opfylder betingelsen. Til sidst konverteres det resulterende filter-objekt tilbage til en liste, hvilket giver det viste output.

Note
Bemærk

Når du bruger funktionen filter, returnerer den et filter-objekt, som er en iterator — ikke en liste. Hvis du udskriver resultatet af filter direkte, vil du se output, der ligner:

<filter object at 0xfffec885eb30>

For at få adgang til de filtrerede værdier som en liste, skal du konvertere filter-objektet ved hjælp af list().

Opgave

Swipe to start coding

Du skal bruge funktionen filter til at udvælge positive tal fra en liste.

  • Funktionen is_positive skal returnere True, hvis argumentet er større end nul, og False ellers.
  • Funktionen filter_positive skal bruge funktionen filter sammen med is_positive til at oprette en ny liste, der kun indeholder de positive tal fra input-listen.
  • Funktionen skal returnere denne nye liste.
  • Husk at fjerne pass.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 3
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

some-alt