single
Filter-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.
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 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.
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().
Swipe to start coding
Du skal bruge funktionen filter til at udvælge positive tal fra en liste.
- Funktionen
is_positiveskal returnereTrue, hvis argumentet er større end nul, ogFalseellers. - Funktionen
filter_positiveskal bruge funktionenfiltersammen medis_positivetil 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
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat