Метод filter() фільтрує задану послідовність за допомогою функції, яка перевіряє кожен елемент у послідовності на істину чи ні.
Синтаксис Python filter().
Метод filter() у Python має такий синтаксис:
Синтаксис: фільтр (функція, послідовність)
Параметри:
умысел умисел
- функція: функція, яка перевіряє, чи є кожен елемент послідовності істинним чи ні.
- послідовність: послідовність, яку необхідно відфільтрувати, це можуть бути набори, списки, кортежі або контейнери будь-яких ітераторів.
Повернення: ітератор, який уже відфільтровано.
Приклади функцій фільтра Python
Давайте подивимося кілька прикладів функції filter() у Python.
Функція фільтра Python із спеціальною функцією
У цьому прикладі ми використовуємо функцію фільтра разом із спеціальною функцією весело() щоб відфільтрувати голосні з Список Python .
Python
# function that filters vowels> def> fun(variable):> > letters> => [> 'a'> ,> 'e'> ,> 'i'> ,> 'o'> ,> 'u'> ]> > if> (variable> in> letters):> > return> True> > else> :> > return> False> # sequence> sequence> => [> 'g'> ,> 'e'> ,> 'e'> ,> 'j'> ,> 'k'> ,> 's'> ,> 'p'> ,> 'r'> ]> # using filter function> filtered> => filter> (fun, sequence)> print> (> 'The filtered letters are:'> )> for> s> in> filtered:> > print> (s)> |
mvc з java
>
>
Вихід:
The filtered letters are: e e>
Функція фільтра в Python з Lambda
Функція Python filter() зазвичай використовується з Лямбда-функції . У цьому прикладі ми використовуємо функцію лямбда, щоб відфільтрувати непарні та парні числа зі списку.
Python3
# a list contains both even and odd numbers.> seq> => [> 0> ,> 1> ,> 2> ,> 3> ,> 5> ,> 8> ,> 13> ]> # result contains odd numbers of the list> result> => filter> (> lambda> x: x> %> 2> !> => 0> , seq)> print> (> list> (result))> # result contains even numbers of the list> result> => filter> (> lambda> x: x> %> 2> => => 0> , seq)> print> (> list> (result))> |
>
>
Вихід:
[1, 3, 5, 13] [0, 2, 8]>
Функція фільтра в Python із лямбда-функцією та спеціальною функцією
У цій програмі ми будемо використовувати обидві спеціальні функції is_multiple_of_3() а також лямбда-функція. Функція filter() використовується для застосування цієї функції до кожного елемента списку чисел, а функція лямбда використовується для повторення кожного елемента списку перед застосуванням умови. Таким чином ми можемо виконувати додаткові операції над кожним елементом перед застосуванням умови.
Python3
як вийти з циклу while java
java архітектура
# Define a function to check> # if a number is a multiple of 3> def> is_multiple_of_3(num):> > return> num> %> 3> => => 0> # Create a list of numbers to filter> numbers> => [> 1> ,> 2> ,> 3> ,> 4> ,> 5> ,> 6> ,> 7> ,> 8> ,> 9> ,> 10> ]> # Use filter and a lambda function to> # filter the list of numbers and only> # keep the ones that are multiples of 3> result> => list> (> filter> (> lambda> x: is_multiple_of_3(x), numbers))> # Print the result> print> (result)> |
>
>Вихід
[3, 6, 9]>
Аналіз часової складності
- Функція filter використовується для фільтрації списку чисел і застосовує лямбда-функцію до кожного елемента списку. Часова складність функції фільтра дорівнює O(n), де n – кількість елементів у списку.
- Часова складність лямбда-функції є постійною, O(1), оскільки вона виконує лише одну арифметичну операцію. Таким чином, загальна часова складність програми становить O(n).
Аналіз допоміжного простору
Програма використовує список для зберігання відфільтрованих чисел, тому складність місця пропорційна кількості відфільтрованих чисел. У гіршому випадку, якщо всі числа кратні 3, відфільтрований список матиме n/3 елементів. Таким чином, складність простору дорівнює O(n/3), що спрощується до O(n) у великій нотації O.