single
Filter-Functie in Gebruik
Veeg om het menu te tonen
Je hebt al gezien hoe hogere-orde functies zoals map je in staat stellen om een functie toe te passen op elk element in een reeks. Een andere essentiële hogere-orde functie in Python is filter.
De filter-functie wordt gebruikt om elementen uit een reeks te selecteren op basis van het voldoen aan een bepaalde voorwaarde. Het neemt twee argumenten: een functie die True of False retourneert voor elk element, en de reeks die gefilterd moet worden. Het resultaat is een iterator die alleen die elementen bevat waarvoor de functie True retourneert. Dit maakt filter bijzonder nuttig wanneer je specifieke items uit een lijst, tuple of andere iterable wilt halen op basis van een criterium, zoals even getallen, positieve waarden of strings van een bepaalde lengte.
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)
Deze code gebruikt de filter()-functie om een nieuwe lijst te maken die alleen de even gehele getallen uit een bestaande collectie bevat. Dit gebeurt door een predicaatfunctie, is_even(n), te definiëren. De filter-functie doorloopt de lijst met getallen, past deze controle toe op elk element en negeert alle elementen die niet aan de voorwaarde voldoen. Ten slotte wordt het resulterende filterobject omgezet naar een lijst, wat de uitvoer oplevert.
Wanneer je de functie filter gebruikt, retourneert deze een filterobject, wat een iterator is — geen lijst. Als je het resultaat van filter direct afdrukt, zie je een uitvoer zoals:
<filter object at 0xfffec885eb30>
Om de gefilterde waarden als een lijst te bekijken, moet je het filterobject omzetten met list().
Veeg om te beginnen met coderen
Je gaat de functie filter gebruiken om positieve getallen uit een lijst te selecteren.
- De functie
is_positivemoetTrueretourneren als het argument groter is dan nul, en andersFalse. - De functie
filter_positivemoet de functiefiltersamen metis_positivegebruiken om een nieuwe lijst te maken die alleen de positieve getallen uit de invoerlijst bevat. - De functie moet deze nieuwe lijst retourneren.
- Vergeet niet om
passte verwijderen.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.