查找最后匹配的索引

查找给定列表中满足提供的测试函数的最后一个元素的索引。

  • 使用列表推导式、enumerate()next() 来返回满足 fn 返回 True 的最后一个元素在 lst 中的索引。
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