logo

Функція Python filter().

Вбудована функція Python filter() також є потужною; для виконання процедури фільтрації даних для таких послідовностей, як списки, кортежі та рядки. Функція filter() використовується для застосування функції до кожного елемента ітератора (наприклад, списку або кортежу) і повернення іншого ітератора, що містить лише ті елементи, для яких функція повертає True. Таким чином, filter() дозволяє нам відфільтрувати елементи з групування на основі певної умови. Перший аргумент може бути None, якщо функція недоступна і повертає лише елементи, які мають значення True.

Синтаксис:

 filter (function, iterable) 

Параметри

функція: Це функція. Якщо встановлено значення None, повертаються лише елементи, які мають значення True.

Повторювані: Будь-яка повторювана послідовність, наприклад список, кортеж і рядок.

Обидва параметри є обов’язковими.

Повернення

Він повертає те саме, що повертає функція.

Давайте розглянемо кілька прикладів функції filter(), щоб зрозуміти її функціональність.

Приклад функції Python filter() 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] 

Код визначає функцію під назвою filterdata, яка приймає один аргумент x. У цій функції ми перевіряємо, припускаючи, що x більше 5, і якщо це правда, ми друкуємо x. Потім ми викликаємо функцію filter(), передаючи filterdata як основний аргумент і кортеж (1, 2, 6) як наступний аргумент. Функція filter() застосовує функцію filterdata() до кожного елемента кортежу та повертає ітератор, який містить лише елементи, які відповідають умові x > 5. Нарешті, ми перетворюємо ітератор на список за допомогою функції list(). і роздрукуйте результат.

Нижче наведено декілька додаткових прикладів використання методу filter() у Python:

приклад 2:

Відфільтрувати порожні рядки зі списку:

ярлики linux

Код

анотації у Spring Boot
 # 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' ] 

У цьому прикладі лямбда-функція перевіряє, чи кожен рядок не порожній, перевіряючи, припускаючи, що він еквівалентний порожньому рядку (''). Функція filter() повертає іншу ітерацію, що містить лише непорожні рядки.

приклад 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) або еквівалентне йому. Функція filter() повертає іншу ітерацію, яка містить лише невід’ємні числа.

Приклад 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 ] 

У цьому прикладі лямбда-функція перевіряє, чи кожне число з’являється лише один раз у списку чисел, підраховуючи, як часто воно з’являється (numbers.count(x)) і перевіряє, чи кількість еквівалентна 1. Функція filter() повертає іншу ітерацію, що містить лише унікальні числа.

Примітка. Важливо, що в Python 3 функція filter() повертає ітерований елемент, і це означає, що ви дійсно хочете повністю змінити його на список (як показано в прикладах вище), щоб включити його як список. Тим не менш, у Python 2 функція filter() повертає список звичайно.

Висновок:

Нарешті, функція filter() є потужним інструментом для обробки даних у Python. Відфільтрувавши ітерацію на основі попередньо визначеної умови, ви можете швидко й ефективно відокремити дані, які вам дійсно потрібні. Ви також можете використовувати filter() у поєднанні з іншими функціями Python для виконання складніших маніпуляцій з даними.