Введение
В Python мы можем использовать функцию enumerate() для перебора списка и получения как индекса, так и значения каждого элемента. Мы также можем использовать списочное выражение для фильтрации элементов, которые удовлетворяют определенному условию. В этом испытании вы будете использовать эти концепции для создания функции, которая находит индексы всех элементов в списке, удовлетворяющих заданной тестирующей функции.
Найти все совпадающие индексы
Напишите функцию find_index_of_all(lst, fn), которая принимает список lst и тестирующую функцию fn в качестве аргументов и возвращает список индексов всех элементов в lst, для которых fn возвращает True.
Входные данные
- Список
lstцелых чисел. - Тестирующая функция
fn, которая принимает целое число в качестве входных данных и возвращает логическое значение.
Выходные данные
- Список целых чисел, представляющий индексы всех элементов в
lst, для которыхfnвозвращаетTrue.
def find_index_of_all(lst, fn):
return [i for i, x in enumerate(lst) if fn(x)]
find_index_of_all([1, 2, 3, 4], lambda n: n % 2 == 1) ## [0, 2]
Резюме
В этом испытании вы узнали, как использовать enumerate() и списочное выражение для нахождения индексов всех элементов в списке, которые удовлетворяют заданной тестирующей функции. Теперь вы можете использовать эти знания, чтобы решать аналогичные задачи в будущем.