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