Python филтър ()

Методът filter () изгражда итератор от елементи на итерабел, за който функция връща true.

С прости думи, filter()методът филтрира дадения итерируем с помощта на функция, която тества всеки елемент в итерируемия за вярно или не.

Синтаксисът на filter()метода е:

 филтър (функция, итерируем)

filter () Параметри

filter() методът взема два параметъра:

  • функция - функция, която тества дали елементите на итерируемо връщат true или false
    Ако няма, функцията по подразбиране е функция Identity - която връща false, ако някои елементи са false
  • iterable - iterable, който трябва да бъде филтриран, може да бъде набори, списъци, кортежи или контейнери на всякакви итератори

Връщане на стойност от filter ()

filter() метод връща итератор, който е преминал проверката на функцията за всеки елемент в итерируемия.

filter() методът е еквивалентен на:

 # когато е дефинирана функция (елемент за елемент в итерируем, ако функция (елемент)) # когато функцията е None (елемент за елемент в итерируем if елемент)

Пример 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)

Изход

 Филтрираните гласни са: aeio 

Тук имаме списък с букви и трябва да филтрираме само гласните в него.

Можем да използваме цикъл for, за да преминем през всеки елемент в списъка с букви и да го съхраним в друг списък, но в Python този процес е по-лесен и по-бърз с помощта на filter()метод.

Имаме функция, filterVowelsкоято проверява дали буквата е гласна или не. Тази функция се предава на filter()метод със списък с букви.

filter()След това методът предава всяка буква на filterVowels()метода, за да провери дали връща вярно или не. В крайна сметка създава итератор на тези, които връщат true (гласни).

Тъй като итераторът не съхранява самите стойности, ние го преглеждаме и отпечатваме гласни един по един.

Пример 2: Как работи методът filter () без функцията за филтриране?

 # 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 a True 0 

Тук имаме случаен списък с числа, низ и булево значение в randomList.

Предаваме randomList на filter()метода с първи параметър (функция на филтъра) като None.

С функция на филтър като None, функцията по подразбиране е функция Identity и всеки елемент в randomList се проверява дали е вярно или не.

Когато преглеждаме крайния филтриран 1, a, True and '0'списък , получаваме елементите, които са верни: ('0' като низ също е вярно).

Интересни статии...