30秒学会 Python 片段 · 2023年12月23日

30秒学会 Python 片段 – Find all matching indexes

Finds the indexes of all elements in the given list that satisfy the provided testing function.

  • Use enumerate() and a list comprehension to return the indexes of the all element in lst for which fn returns 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]

翻译自:https://www.30secondsofcode.org/python/s/find-index-of-all