Питхон-ова уграђена функција филтер() је такође моћна; за извођење процедуре филтрирања података на секвенцама као што су листе, тупле и стрингови. Функција филтер() се користи да примени функцију на сваки елемент итерабле (попут листе или тупле) и врати другу итерабле која садржи само елементе за које функција враћа Труе. У складу са овим, филтер() нам дозвољава да филтрирамо елементе из груписања на основу неког услова. Први аргумент може бити Ноне ако функција није доступна и враћа само елементе који су Тачни.
Синтакса:
filter (function, iterable)
Параметерс
функција: То је функција. Ако је постављено на Ништа, враћа само елементе који су Тачни.
Итерабле: Било који низ који се може понављати као што је листа, тупле и стринг.
Оба параметра су обавезна.
Повратак
Враћа исто као што је вратила функција.
Хајде да видимо неке примере функције филтер() да бисмо разумели њену функционалност.
Пример функције Питхон филтер() 1
Овај једноставан пример враћа вредности веће од 5 користећи функцију филтера. Погледајте пример у наставку.
Код
# 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))
Излаз:
[6]
Код дефинише функцију под називом филтердата која узима један аргумент к. У овој функцији проверавамо под претпоставком да је к веће од 5, и под условом да је то тачно, штампамо к. Затим позивамо функцију филтер() , прослеђујући филтердата као главни аргумент и тупле (1, 2, 6) као следећи аргумент. Функција филтер() примењује функцију филтердата() на сваки елемент тупле и враћа итератор који садржи само елементе који испуњавају услов к > 5. Коначно, конвертујемо итератор у листу користећи функцију лист() и одштампајте резултат.
Следи неколико додатних примера како да користите метод филтер() у Питхон-у:
Пример 2:
Филтрирајте празне стрингове са листе:
Код
# 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)
Излаз:
[ 'hello', 'world' ]
У овом примеру, ламбда функција проверава у случају да сваки стринг није празан тестирањем под претпоставком да је еквивалентан празном низу (''). Функција филтер() враћа други итерабле који садржи само непразне стрингове.
Пример 3:
Филтрирајте негативне бројеве са листе:
Код
# 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)
Излаз:
[1, 3, 5]
У овом примеру, ламбда функција проверава под претпоставком да сваки број није негативан тестирањем у случају да је истакнутији или еквивалентан нули (0). Функција филтер() враћа још један итерабле који садржи само не-негативне бројеве.
Пример 4:
Филтрирајте дупликате са листе:
Код
# 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)
Излаз:
[ 1, 4, 5 ]
У овом примеру, ламбда функција проверава у случају да се сваки број појави само једном на листи бројева тако што броји колико често се појављује (бројеви.цоунт(к)) и тестира у случају да је број еквивалентан 1. Функција филтер() враћа још један итерабле који садржи само јединствене бројеве.
Напомена: Значајно је да у Питхон-у 3 функција филтер() враћа итерабле, а то имплицира да заиста желите да је потпуно промените у листу (као што је приказано у примерима изнад) да бисте је укључили као листу. Без обзира на то, у Питхон 2, функција филтер() враћа листу наравно.
Закључак:
Коначно, функција филтер() је моћан алат за манипулацију подацима у Питхон-у. Филтрирањем итерабле на основу унапред дефинисаног услова, можете брзо и ефикасно одвојити податке које заиста желите. Такође можете користити филтер() у комбинацији са другим Питхон функцијама да бисте извршили збуњујуће манипулације подацима.