single
Filter Function in Use
Свайпніть щоб показати меню
Ви вже бачили, як функції вищого порядку, такі як map, дозволяють застосовувати функцію до кожного елемента послідовності. Ще однією важливою функцією вищого порядку в Python є filter.
Функція filter використовується для вибору елементів із послідовності на основі того, чи задовольняють вони певну умову. Вона приймає два аргументи: функцію, яка повертає True або False для кожного елемента, і послідовність для фільтрації. Результатом є ітератор, що містить лише ті елементи, для яких функція повертає True. Це робить filter особливо корисною, коли потрібно отримати певні елементи зі списку, кортежу або іншого ітерованого об'єкта за певним критерієм, наприклад, парні числа, додатні значення або рядки певної довжини.
123456def is_even(n): return n % 2 == 0 numbers = [1, 2, 3, 4, 5, 6] even_numbers = list(filter(is_even, numbers)) print(even_numbers)
Цей код використовує функцію filter() для створення нового списку, що містить лише парні цілі числа з наявної колекції. Це реалізується шляхом визначення предикатної функції is_even(n). Функція filter проходить по списку numbers, застосовуючи цю перевірку до кожного елемента та відкидаючи ті, що не відповідають умові. Нарешті, отриманий об'єкт filter перетворюється назад у список, що й дає результат.
Коли ви використовуєте функцію filter, вона повертає filter object — це ітератор, а не список. Якщо ви виведете результат filter безпосередньо, побачите подібний вивід:
<filter object at 0xfffec885eb30>
Щоб отримати відфільтровані значення у вигляді списку, потрібно перетворити filter object за допомогою list().
Проведіть, щоб почати кодувати
Використання функції filter для вибору додатних чисел зі списку.
- Функція
is_positiveповинна повертатиTrue, якщо аргумент більше нуля, іFalseв іншому випадку. - Функція
filter_positiveповинна використовувати функціюfilterразом ізis_positiveдля створення нового списку, що містить лише додатні числа з вхідного списку. - Функція повинна повертати цей новий список.
- Не забудьте видалити
pass.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат