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

PythonPythonBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В Python мы можем использовать списочное выражение и enumerate() для нахождения индекса последнего элемента в списке, который удовлетворяет заданному условию. Эта задача проверит вашу способность использовать эти инструменты для решения проблемы.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python/BasicConceptsGroup -.-> python/comments("Comments") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/lambda_functions("Lambda Functions") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/AdvancedTopicsGroup -.-> python/iterators("Iterators") subgraph Lab Skills python/comments -.-> lab-13637{{"Найти последний совпадающий индекс"}} python/conditional_statements -.-> lab-13637{{"Найти последний совпадающий индекс"}} python/for_loops -.-> lab-13637{{"Найти последний совпадающий индекс"}} python/lists -.-> lab-13637{{"Найти последний совпадающий индекс"}} python/tuples -.-> lab-13637{{"Найти последний совпадающий индекс"}} python/function_definition -.-> lab-13637{{"Найти последний совпадающий индекс"}} python/lambda_functions -.-> lab-13637{{"Найти последний совпадающий индекс"}} python/build_in_functions -.-> lab-13637{{"Найти последний совпадающий индекс"}} python/iterators -.-> lab-13637{{"Найти последний совпадающий индекс"}} end

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

Напишите функцию find_last_index(lst, fn), которая принимает список lst и функцию fn в качестве аргументов. Функция должна возвращать индекс последнего элемента в lst, для которого fn возвращает True. Если ни один элемент не удовлетворяет условию, функция должна возвращать -1.

def find_last_index(lst, fn):
  return len(lst) - 1 - next(i for i, x in enumerate(lst[::-1]) if fn(x))
find_last_index([1, 2, 3, 4], lambda n: n % 2 == 1) ## 2

Резюме

В этом испытании вы узнали, как использовать списочное выражение и enumerate() для нахождения индекса последнего элемента в списке, который удовлетворяет заданному условию. Это полезный прием, который стоит иметь в своем Python-инструментаре!