Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Filter-Funktionen i Användning | Högre ordningens funktioner och lambdas
Funktionella Programmeringskoncept i Python
Avsnitt 2. Kapitel 3
single

single

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

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

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.

Note
Notering

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

Uppgift

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_positive ska returnera True om argumentet är större än noll, annars False.
  • Funktionen filter_positive ska använda filter tillsammans med is_positive fö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

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 3
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

some-alt