Вбудована функція 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 для виконання складніших маніпуляцій з даними.