Метода филтер () израђује итератор од елемената итерабилног за који функција враћа тачно.
Једноставним речима, filter()
метода филтрира дати итерабил помоћу функције која тестира да ли је сваки елемент у итералу тачан или не.
Синтакса filter()
методе је:
филтер (функција, итерабилан)
филтер () Параметри
filter()
метода узима два параметра:
- фунцтион - функција која тестира да ли елементи итерабилног елемента враћају труе или фалсе.
Ако Ноне, функција по дефаулту има функцију Идентити - која враћа фалсе ако су неки елементи лажни - итерабле - итерабле који треба филтрирати, може бити скупови, листе, корице или контејнери било којег итератора
Врати вредност из филтера ()
filter()
метода враћа итератор који је прошао проверу функције за сваки елемент у итерабле-у.
filter()
метода је еквивалентна:
# када је функција дефинисана (елемент за елемент у итерабле-у ако је функција (елемент)) # када је функција Ноне (елемент за елемент у итерабле-у иф елемент)
Пример 1: Како филтер () ради за листу која се може итерати?
# list of letters letters = ('a', 'b', 'd', 'e', 'i', 'j', 'o') # function that filters vowels def filterVowels(letter): vowels = ('a', 'e', 'i', 'o', 'u') if(letter in vowels): return True else: return False filteredVowels = filter(filterVowels, letters) print('The filtered vowels are:') for vowel in filteredVowels: print(vowel)
Оутпут
Филтрирани самогласници су: аеио
Овде имамо списак слова и морамо филтрирати само самогласнике у њему.
Петљу фор могли бисмо користити за петљу кроз сваки елемент на листи слова и чување на другој листи, али у Питхону је овај поступак лакши и бржи помоћу filter()
методе.
Имамо функцију filterVowels
која проверава да ли је слово самогласник или не. Ова функција се преноси на filter()
методу са листом слова.
filter()
метода затим прослеђује свако слово filterVowels()
методи да провери да ли враћа тачно или не. На крају креира итератор оних који враћају тачно (самогласници).
С обзиром да итератор не чува саме вредности, провлачимо се кроз њега и исписујемо самогласнике један по један.
Пример 2: Како метода филтер () ради без функције филтера?
# random list randomList = (1, 'a', 0, False, True, '0') filteredList = filter(None, randomList) print('The filtered elements are:') for element in filteredList: print(element)
Оутпут
Филтрирани елементи су: 1 а Тачно 0
Овде имамо случајну листу бројева, низа и логичких вредности у рандомЛист.
Ми просљеђујемо рандомЛист filter()
методи са првим параметром (функција филтера) као Ноне.
Са функцијом филтера као Ноне, функција подразумевано користи функцију Идентити и сваки елемент у рандомЛист се проверава да ли је тачан или не.
Када пролазимо кроз коначну филтередЛист, добијамо елементе који су истинити: 1, a, True and '0'
('0' јер је низ такође тачан).