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

Beginner

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

はじめに

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

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

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) という関数を書きました。