関数に基づくリストの最大値を見つける

PythonPythonBeginner
今すぐ練習

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

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

はじめに

Python では、リスト内の最大値を見つけるには max() 関数を使用できます。ただし、各要素を提供された関数を使って別の値にマッピングした後の最大値を見つけたい場合はどうでしょうか。このチャレンジでは、リストと関数を引数として取り、各要素を提供された関数を使って別の値にマッピングし、最大値を返す関数を書く必要があります。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/BasicConceptsGroup -.-> python/comments("Comments") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/DataStructuresGroup -.-> python/dictionaries("Dictionaries") 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-13686{{"関数に基づくリストの最大値を見つける"}} python/lists -.-> lab-13686{{"関数に基づくリストの最大値を見つける"}} python/tuples -.-> lab-13686{{"関数に基づくリストの最大値を見つける"}} python/dictionaries -.-> lab-13686{{"関数に基づくリストの最大値を見つける"}} python/function_definition -.-> lab-13686{{"関数に基づくリストの最大値を見つける"}} python/lambda_functions -.-> lab-13686{{"関数に基づくリストの最大値を見つける"}} python/build_in_functions -.-> lab-13686{{"関数に基づくリストの最大値を見つける"}} end

関数に基づくリストの最大値を見つける

max_by(lst, fn) という関数を書きます。この関数は、リスト lst と関数 fn を引数として取ります。この関数は、提供された関数 fn を使って lst の各要素を別の値にマッピングし、その後最大値を返す必要があります。

def max_by(lst, fn):
  return max(map(fn, lst))
max_by([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], lambda v : v['n']) ## 8

まとめ

このチャレンジでは、各要素を提供された関数を使って別の値にマッピングした後のリスト内の最大値を見つける方法を学びました。また、リストと関数を引数として取り、各要素を提供された関数を使って別の値にマッピングし、最大値を返す max_by(lst, fn) という関数を書きました。