De ingebouwde filter()-functie van Python is ook krachtig; voor het uitvoeren van gegevensfilterprocedures op reeksen zoals lijsten, tupels en tekenreeksen. De functie filter() wordt gebruikt om een functie toe te passen op elk element van een iterabele (zoals een lijst of tuple) en een andere iterabele te retourneren die alleen de elementen bevat waarvoor de functie True terugbrengt. Langs deze lijnen stelt filter() ons in staat elementen uit een groepering te filteren op basis van een bepaalde voorwaarde. Het eerste argument kan Geen zijn als de functie niet beschikbaar is en alleen elementen retourneert die Waar zijn.
Syntaxis:
filter (function, iterable)
Parameters
functie: Het is een functie. Als deze is ingesteld op Geen, worden alleen elementen geretourneerd die True zijn.
Java-schijfje
Itereerbaar: Elke iterabele reeks, zoals lijst, tupel en tekenreeks.
Beide parameters zijn vereist.
Opbrengst
Het retourneert hetzelfde als geretourneerd door de functie.
Laten we enkele voorbeelden van de functie filter() bekijken om de functionaliteit ervan te begrijpen.
Python filter() Functie Voorbeeld 1
Dit eenvoudige voorbeeld retourneert waarden hoger dan 5 met behulp van de filterfunctie. Zie het onderstaande voorbeeld.
Verwijder het eerste teken in Excel
Code
# Python filter() function example def filterdata(x): if x>5: return x # Calling function result = filter(filterdata,(1,2,6)) # Displaying result print(list(result))
Uitgang:
[6]
De code definieert een functie genaamd filterdata waaraan één argument x moet doorgegeven worden. In deze functie controleren we of x groter is dan 5, en als dit waar is, printen we x. Vervolgens roepen we de functie filter() aan, waarbij filterdata als hoofdargument en een tupel (1, 2, 6) als volgend argument worden doorgegeven. De functie filter() past de functie filterdata() toe op elk element van de tupel en retourneert een iterator die alleen de elementen bevat die voldoen aan de voorwaarde x > 5. Ten slotte converteren we de iterator naar een lijst met behulp van de functie list() en print het resultaat.
Hieronder volgen enkele aanvullende voorbeelden van het gebruik van de filter()-methode in Python:
Voorbeeld 2:
Lege tekenreeksen uit een lijst filteren:
Code
# Python filter() function example strings = [ '', 'hello', '', 'world', '' ] # Using filter() to remove empty strings from the list result = list(filter(lambda x: x != '', strings)) # Printing the result print(result)
Uitgang:
[ 'hello', 'world' ]
In dit voorbeeld controleert de lambda-functie of elke string niet leeg is door te testen, ervan uitgaande dat deze equivalent is aan de lege string (''). De functie filter() retourneert nog een iterabele die alleen de niet-lege tekenreeksen bevat.
Voorbeeld 3:
Negatieve getallen uit een lijst filteren:
if else-statements java
Code
# Python filter() function example numbers = [ 1, -2, 3, -4, 5, -6 ] # Using filter() to remove negative numbers from the list result = list(filter(lambda x: x >= 0, numbers)) # Printing the result print(result)
Uitgang:
[1, 3, 5]
In dit voorbeeld controleert de lambda-functie of elk getal niet-negatief is door te testen of het prominenter is dan of gelijk is aan nul (0). De functie filter() retourneert nog een iterabele die alleen de niet-negatieve getallen bevat.
Voorbeeld 4:
Duplicaten uit een lijst filteren:
Code
# Python filter() function example numbers = [ 1, 2, 3, 2, 4, 3, 5 ] # Using filter() to remove duplicate numbers from the list result = list(filter(lambda x: numbers.count(x) == 1, numbers)) # Printing the result print(result)
Uitgang:
[ 1, 4, 5 ]
In dit voorbeeld controleert de lambda-functie of elk getal slechts één keer voorkomt in de getallenlijst door te tellen hoe vaak het voorkomt (numbers.count(x)) en te testen of het aantal gelijk is aan 1. De functie filter() retourneert nog een iterabele die alleen de unieke getallen bevat.
10 van 50
Opmerking: het is veelbetekenend dat in Python 3 de functie filter() een iterabele retourneert, en dat impliceert dat je deze echt volledig wilt omzetten in een lijst (zoals weergegeven in de bovenstaande voorbeelden) om deze als een lijst te gebruiken. Niettemin retourneert de functie filter() in Python 2 natuurlijk een lijst.
Conclusie:
Ten slotte is de functie filter() een krachtig hulpmiddel voor gegevensmanipulatie in Python. Door een iterabele te filteren op basis van een vooraf gedefinieerde voorwaarde, kunt u snel en effectief de gegevens scheiden die u echt nodig heeft. Je kunt filter() ook gebruiken in combinatie met andere Python-functies om meer verbijsterende gegevensmanipulaties uit te voeren.