Функция рекурсивного фильтра в Python: как фильтровать список с помощью рекурсии

Я буду рад объяснить, как реализовать функцию рекурсивного фильтра в Python. Вот пример фрагмента кода:

def recursive_filter(predicate, lst):
    if not lst:
        return []
    elif predicate(lst[0]):
        return [lst[0]] + recursive_filter(predicate, lst[1:])
    else:
        return recursive_filter(predicate, lst[1:])

В этом коде функция recursive_filterпринимает на вход функцию-предикат и список. Он рекурсивно применяет функцию предиката к каждому элементу списка и возвращает новый список, содержащий только те элементы, которые удовлетворяют предикату.

Чтобы использовать функцию recursive_filter, вам необходимо определить собственную функцию-предикат, задающую условие фильтрации. Вот пример использования:

def is_even(n):
    return n % 2 == 0
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filtered_numbers = recursive_filter(is_even, numbers)
print(filtered_numbers)  # Output: [2, 4, 6, 8, 10]

В этом примере функция is_evenявляется предикатом, проверяющим, является ли число четным. Затем функция recursive_filterиспользуется для фильтрации четных чисел из списка numbers.