Найти все совпадающие индексы

Beginner

This tutorial is from open-source community. Access the source code

Введение

В 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() и списочное выражение для нахождения индексов всех элементов в списке, которые удовлетворяют заданной тестирующей функции. Теперь вы можете использовать эти знания, чтобы решать аналогичные задачи в будущем.