すべての一致するインデックスを見つける

Beginner

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

はじめに

Python では、enumerate() 関数を使ってリストを反復処理し、各要素のインデックスと値の両方を取得できます。また、特定の条件を満たす要素をフィルタリングするためにリスト内包表記を使うこともできます。このチャレンジでは、これらの概念を使って、与えられたテスト関数を満たすリスト内のすべての要素のインデックスを見つける関数を作成します。

すべての一致するインデックスを見つける

引数としてリスト lst とテスト関数 fn を取り、fnTrue を返す lst 内のすべての要素のインデックスのリストを返す関数 find_index_of_all(lst, fn) を書きなさい。

入力

  • 整数のリスト lst
  • 整数を入力として受け取り、ブール値を返すテスト関数 fn

出力

  • fnTrue を返す lst 内のすべての要素のインデックスを表す整数のリスト
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() とリスト内包表記をどのように使うかを学びました。これで、今後同様の問題を解決する際にこの知識を活用できるようになりました。