Pythonのmaxメソッドを使ってリストや配列の最大値を求める方法

スポンサーリンク
スポンサーリンク

イントロダクション

この記事では、Pythonのmax()メソッドの使い方を理解するつもりです。

基本的に、Python の max() メソッドは、渡された値のセットまたはイテラブルの要素の中から最大値を返します。

Python の max() メソッドを使用する

以下は、Python の max() メソッドを使って反復処理可能な値の中で最大の値を求めるための構文です。

max(iterable, *[, key, default])

ここで

  • iterable は、最大値を求めるための値を含むオブジェクトです。
  • key は引数1つの順序付け関数を指定します。
  • また、defaultは、渡されたiterableが空の場合にメソッドが返すデフォルト値です。

引数として渡された2つ以上の値の中から最大値を求める場合。

max(arg1, arg2, *args[, key])

ここで

  • arg1, arg2, … argn は n 個の値で、その中で max() メソッドは最大の値を返します。
  • また、キーは順序付け関数です。

Python の max() メソッドを使った作業

max()` メソッドは、与えられた反復子や2つ以上の引数の最大値を求めるために、さまざまな方法で使用することができます

ここでは、反復可能オブジェクト、2つ以上の値、指定されたキー関数、引数として渡された複数の反復可能オブジェクトに対して、このメソッドがどのように動作するかを見てみましょう。

イテラブルオブジェクトを持つ

以下の例では、いくつかの値を持つリストがあり、その中で最大の要素を見つけることを考えています。

以下のコードをよく見てください。

#initialisation of list
list1 = [ 1,3,4,7,0,4,8,2 ]
 
#finding max element
print("max value is : ", max(list1,default=0))

結果は以下の通りです。

max value is 8

見てのとおり、上のコードではリスト list1 を初期化して、デフォルト値を 0 にして max() メソッドに直接渡しています。

この関数は最大の値である 8 を返します。

もしリストが空だったら、この関数はデフォルト値である 0 を渡していたことでしょう。

Python の max() メソッドに2つ以上の値を渡す場合

max()` メソッドに 2 つ以上の値が渡されると、そのうちの最大値を返します。

これらの引数は、整数、浮動小数点数、文字、あるいは文字列であることができます。

例を見てみましょう。

print("max value is : ", max(6,1,73,6,38))

を出力します。

max value is 73

望みどおり、最大値である73を得ることができる。

キー機能付き

先に述べたように、キーとは、ある値の集合の中から最大値を求めるための、一列に並んだ順序付けの関数です。

例えば、タプルのリストから、2番目の要素の値が最大であるタプルを見つけたい場合。

その方法を見てみましょう。

#initialisation of variables
list1 = [(9,2,7), (6,8,4), (3,5,1)]
 
def f(tuple_1):
    return tuple_1[1]
 
print("max : ", max(list1, key=f))

結果は以下の通りです。

max :  (6, 8, 4)

ここで、f()は渡されたタプルの2番目の要素を返すユーザ定義関数です。

この関数を max() メソッドのキーとして渡すと、タプルの2番目の要素が最大になるように返されます。

この例では、( 6, 8, 4) です。

複数のイテラブルを引数として渡す

先に述べたように、Pythonのmax()メソッドは、引数として複数のイテレート可能な要素のうち最大のものを返すことができます。

これらの引数は、文字列、文字、タプル、リストなどのイテレート可能な要素です。

デフォルトでは、リストやタプルなどの場合、 max() メソッドは0番目の要素が最大となるオブジェクトを返します。

文字列の場合は、渡された各文字列の最初の文字を比較します。

以下では、タプルの例を取り上げます。

コードをよく見てください。

#initialisation of variables
tuple1 = (5,23,7)
tuple2 = (4,1,7)
tuple3 = (7,37,1)
 
print("max : ", max(tuple1,tuple2,tuple3))

結果は以下の通りです。

max :  (7, 37, 1)

この例では、初期値を持つ3つのタプルが max() メソッドに直接渡されています。

このメソッドは、最初の要素が最も大きいタプル、すなわち (7, 37, 1) を返す。

まとめ

この記事では、Python の max() メソッドについて、その使い方と動作について学びました。

もしデフォルト値が設定されておらず、空のイテラブルが max() 関数の引数として渡された場合は ValueError が発生することを覚えておいてください。

このトピックに関するその他のご質問は、以下のコメント欄からお気軽にどうぞ。

タイトルとURLをコピーしました