single
Filter-Funktionen i Användning
Svep för att visa menyn
Du har redan sett hur högre ordningens funktioner som map låter dig applicera en funktion på varje element i en sekvens. En annan viktig högre ordningens funktion i Python är filter.
Funktionen filter används för att välja ut element från en sekvens baserat på om de uppfyller ett visst villkor. Den tar två argument: en funktion som returnerar True eller False för varje element, och sekvensen som ska filtreras. Resultatet är en iterator som endast innehåller de element där funktionen returnerar True. Detta gör filter särskilt användbar när du vill extrahera specifika objekt från en lista, tuple eller annan iterable baserat på ett kriterium, såsom jämna tal, positiva värden eller strängar av en viss längd.
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)
Denna kod använder funktionen filter() för att skapa en ny lista som endast innehåller de jämna heltalen från en befintlig samling. Det fungerar genom att definiera en predikatfunktion, is_even(n). Funktionen filter itererar genom listan numbers, tillämpar detta villkor på varje element och utesluter de som inte uppfyller det. Slutligen omvandlas det resulterande filter-objektet tillbaka till en lista, vilket ger utdata.
När du använder funktionen filter returneras ett filterobjekt, vilket är en iterator — inte en lista. Om du skriver ut resultatet av filter direkt, kommer du att se en utdata som liknar:
<filter object at 0xfffec885eb30>
För att komma åt de filtrerade värdena som en lista måste du konvertera filterobjektet med hjälp av list().
Svep för att börja koda
Du ska använda funktionen filter för att välja ut positiva tal från en lista.
- Funktionen
is_positiveska returneraTrueom argumentet är större än noll, annarsFalse. - Funktionen
filter_positiveska användafiltertillsammans medis_positiveför att skapa en ny lista som endast innehåller de positiva talen från inmatningslistan. - Funktionen ska returnera denna nya lista.
- Glöm inte att ta bort
pass.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal