找到所有匹配的索引

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() 和列表推导式来找到列表中所有满足给定测试函数的元素的索引。你现在可以运用这些知识来解决未来类似的问题。