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

PythonPythonBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/BasicConceptsGroup -.-> python/comments("Comments") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/ControlFlowGroup -.-> python/list_comprehensions("List Comprehensions") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/lambda_functions("Lambda Functions") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") subgraph Lab Skills python/comments -.-> lab-13633{{"すべての一致するインデックスを見つける"}} python/conditional_statements -.-> lab-13633{{"すべての一致するインデックスを見つける"}} python/for_loops -.-> lab-13633{{"すべての一致するインデックスを見つける"}} python/list_comprehensions -.-> lab-13633{{"すべての一致するインデックスを見つける"}} python/lists -.-> lab-13633{{"すべての一致するインデックスを見つける"}} python/tuples -.-> lab-13633{{"すべての一致するインデックスを見つける"}} python/function_definition -.-> lab-13633{{"すべての一致するインデックスを見つける"}} python/lambda_functions -.-> lab-13633{{"すべての一致するインデックスを見つける"}} python/build_in_functions -.-> lab-13633{{"すべての一致するインデックスを見つける"}} end

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

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