Het filter is een ingebouwde Python-functie. Het filtert de gespecificeerde reeks of iterable door een functie die elk item of element in de iterable controleert om waar of onwaar te zijn. Simpel gezegd, de filterfunctie filtert het iterabele door een functie. De gegeven functie test elk item van de reeks of iterabel en geeft de waarde true als het item aan de gegeven criteria voldeed. Als resultaat construeert de functie filter() een nieuwe iterator. De meest gebruikte iterable zijn lijsten, tupels en woordenboeken. Dit artikel beschrijft in het kort de functie filter() aan de hand van voorbeelden.
Syntaxis van de functie filter()
Laten we eerst de syntaxis van de functie filter() bespreken. De syntaxis van de functie filter() is als volgt:
filet (functie, itereerbaar of reeks)De filterfunctie heeft twee parameters als argument, i.e., functie en een iterable. De functie controleert elk element of item van de iterabele, of het waar is of niet, volgens bepaalde criteria. Het tweede argument is itereerbaar of de volgorde die moet worden gefilterd. De functie evalueert elk item van de iterabele op de gegeven criteria. Ten slotte retourneert de functie filter() de gefilterde iterator.
Laten we eens kijken naar de voorbeelden van de functie filter() en deze implementeren in ons Python-script. We gebruiken een spyder3-editor om de Python-scripts te maken en uit te voeren.
Voorbeeld 1: Filter de lijst met nummers
Laten we de lijst met nummers maken en deze filteren. In het gegeven voorbeeld evalueert de list_func() elk lijstitem op een bepaalde voorwaarde. Als het lijstitem groter is dan 5, retourneert de functie waar en voegt het item toe aan het filter.
#een lijst met nummers makenmijn_lijst = [1,2,3,4,5,6,10,20,35,8,4,50,60]
#een functie maken
def list_func(listObj):
# een voorwaardelijke verklaring om het nummer te controleren
if(listObj>5):
retourneer True
anders:
retourneer False
#gebruik de filterfunctie om de iterabele te filteren via list_func
nummers = filter(list_func,my_list)
#print de nieuwe iterator
voor i in cijfers:
afdrukken (ik)
Uitgang:
De uitvoer toont de gefilterde iterator. De gefilterde iterator wordt geconstrueerd door al die items die groter zijn dan 5.
Voorbeeld 2: Filter de lijst met tekens
Laten we de lijst met tekens maken en de filterfunctie toepassen.
#een lijst met nummers makenmy_list = ['a','b','c','l','d','i','k','n','o','u','x']
#een functie maken
def list_func(listObj):
word_list=['l', 'i', 'n', 'u', 'x']
# een voorwaardelijke instructie om het teken te controleren
if(listObj in word_list):
retourneer True
anders:
retourneer False
#gebruik de filterfunctie om de iterabele te filteren via list_func
woorden = filter(list_func,my_list)
#print de nieuwe iterator
voor ik in woorden:
afdrukken (ik)
Uitgang:
Voorbeelden 3: Filter het even getal
Laten we de even getallen uit de gegeven lijst met getallen filteren met behulp van de filterfunctie.
#een lijst met nummers makenmijn_lijst = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
#een functie maken
def list_func(listObj):
# een voorwaardelijke verklaring om het even getal te controleren
if(listObj%2==0):
retourneer True
anders:
retourneer False
#gebruik de filterfunctie om de iterabele te filteren via list_func
even_numbers= filter(list_func,my_list)
#print de nieuwe iterator
voor i in even_getallen:
afdrukken (ik)
Uitgang:
Voorbeelden 4: Filter het schrikkeljaar
Laten we de schrikkeljaren uit de gegeven lijst met jaren filteren met behulp van de filterfunctie.
#een lijst met nummers makenmijn_lijst = [2010,2012,2014,2016,2018,2020,2022,2024]
#een functie maken
def list_func(listObj):
# een voorwaardelijke verklaring om het schrikkeljaar te controleren
if(listObj%4==0):
retourneer True
anders:
retourneer False
#gebruik de filterfunctie om de iterabele te filteren via list_func
leap_year= filter(list_func,my_list)
#print de nieuwe iterator
voor i in schrikkeljaar:
afdrukken (ik)
Uitgang:
De uitvoer toont de schrikkeljaren uit de gegeven lijst met jaren.
Voorbeelden 5: lambda-functie gebruiken met filter()
De filterfunctie wordt meestal gebruikt met de lambda-functie. Laten we de lambda-functie als argument doorgeven aan de functie filter().
#een lijst met nummers makenmijn_lijst = [2010,2012,2014,2016,2018,2020,2022,2024]
#declareren van een even_getalvariabele
#even_number variabele bevat de even getallen
#lamda-functie gebruiken
even_nummer = filter(lambda listObj:listObj%2==0,my_list)
print("De lijst met even getallen")
voor i in even_nummer:
afdrukken (ik)
leap_year = filter(lambda listObj:listObj%4==0,my_list)
print("De lijst met schrikkeljaren")
voor x in schrikkeljaar:
afdrukken(x)
Uitgang:
Conclusie
De filter() is een ingebouwde functie van Python die wordt gebruikt om de iterabele op een bepaalde functie te filteren. In dit artikel wordt de functie filter() uitgelegd met voorbeelden.