このガイドでは、リスト、辞書、タプルなどの Python でよく使われるデータ構造の最大要素を求める方法を見ていきます。
Python の名前空間に組み込まれている max()
メソッドは、組み込み型では非常に有効です。
Pythonのリストの最大要素を取得する方法
リストはPythonの組み込み型で、メモリ内の1つのオブジェクトに複数の参照を順次格納するために使用されます。
他のプログラミング言語と比較すると、Pythonのリストは本質的に単純な配列です。
要素はリスト内の位置に基づいてインデックスが付けられ、同じ値を持つ複数の要素が存在することがあります。
Pythonのリストは、異なる型の要素を含むことができることが主な違いです。
異種混合なのです。
# List of different type elements
example_list = ["string", 5, "five", 4, "4"]
注意: 要素が比較演算子 (<,,==,!=) によって比較できない場合、max()
関数は動作しません。
したがって、最大の要素を見つけようとする前に、リストが均質であることを確認したいと思います。
要素を適切に比較しさえすれば、型に関係なく最大の要素を見つけることができます。
ほとんどの場合、整数を扱うことになるだろう。
integer_list = [24, 9, 20, 17, 201, 16, 7]
リストの最大の要素を得る最も簡単な方法は、組み込みの max()
メソッドを使うことです。
max_element = max(integer_list)
print("Max element of a list: ", max_element)
このコードは期待通りの結果を得ることができます。
Max element: 201
また、辞書順に文字列を比較し、リストの中で辞書順に最大の文字列を max()
関数で見つけることができます。
string_list = ["string", "five", "4"]
max_element = max(string_list)
print("Max element:", max_element)
この結果は
Max element: string
リストの最大要素を見つけるもうひとつの方法は、sort()
メソッドを使ってリストをソートし、ソート後のリストの最後の要素を取得することです。
integer_list = [24, 9, 20, 17, 201, 16, 7]
integer_list.sort()
# myList = [7, 9, 16, 17, 20, 24, 201]
max_element = integer_list[-1]
print("Max element of a list: ", max_element)
このコードも前と同じ出力になります。
Max element of a list: 201
もし、最大要素のインデックスも見つけたい場合は、ビルトインの index()
メソッドを使うのが一番簡単です。
integer_list = [24, 9, 20, 17, 201, 16, 7]
max_element = max(integer_list)
max_element_index = integer_list.index(max_element)
print("Max element of a list: ", max_element, " at index: ", max_element_index)
と出力されます。
Max element of a list: 201 at index: 4
Python辞書の最大要素を取得する方法
Pythonの辞書は、キーと値のペアを保存するために使用されます。
同じキーを持つペアは許されませんし、Python 3.7 以降では、辞書内のペアは順序が決まっているとみなされます。
辞書は、中括弧の間に key-value
ペアのリストを記述して定義します。
dictionary = {
"key24": 24,
"key7": 9,
"key20": 201,
"key17": 17,
"key201": 201,
}
辞書の max 要素の値を取得する最も簡単な方法は、組み込みの max()
メソッドを使うことであり、引数として値のリストが渡されます。
max_element = max(dictionary.values())
print("Max element of a dict: ", max_element)
これは、values()
メソッドがリストに格納された値を返すので、前のメソッドに帰結します。
これは正しい出力になります。
Max element of a dict: 201
もし、最大値を持つ最初の要素のキーも見つけたいなら、最も簡単な方法は、 max()
メソッドを辞書に与えて、 dictionary.get()
でその要素を取得する方法です。
max_val = max(dictionary.values())
max_val_key = max(dictionary, key=dictionary.get)
print("Max element of a dict:", max_val, "with the key:", max_val_key)
これは、max要素の値と、最初にマッチしたキーの値を出力します。
Max element of a dict: 201 with the key: key20
注意: 最大値を持つキーを見つけるために max(dictionary)
を使いたくなるかもしれません。
しかし、この方法では、最大値のキーそのものが返されてしまいます。
この例では、辞書の中で最大の辞書的な値を持つキーを返すことになります。
タプルの最大要素を取得する方法
タプルはPythonの組み込み型で、メモリ内の複数のオブジェクトへの参照を連続的に格納します。
多くの点でリストと似ていますが、2つの最も顕著な違いは、タプルはリストとは異なり、不変のデータ構造であることです。
タプルは一般的に、関数の戻り値のような少数の結果のみを格納するために使用されます。
Pythonでは、タプルは2つの大括弧を使って定義します。
# Tuple of different element types
exampleTuple = ("string", 5, "five", 4, "4")
リストでの比較と同じように、 max()
メソッドは互換性のあるデータ型に対してのみ実行することができます。
int_tuple = (24, 9, 20, 17, 201, 16, 7)
string_tuple = ('one', 'two', 'three')
タプルの最大の要素を取得する最も簡単な方法は、組み込みの max()
メソッドを使用することです。
int_tuple = (24, 9, 20, 17, 201, 16, 7)
string_tuple = ('one', 'two', 'three')
max_int = max(int_tuple)
print("Max element of a tuple: ", max_int)
max_str = max(string_tuple)
print("Max element of a tuple: ", max_str)
この場合も、最大の整数と、辞書的に最大の文字列が得られます。
Max element of a tuple: 201
Max element of a tuple: two
結論
データ構造の最大要素を見つけることは、かなり一般的なタスクです。
Python のすべての標準的なデータ構造は、最大要素を見つけるための同様の方法を持っています – すべてのコレクションに対して max()
メソッドに依存します。
このガイドでは、Python の最も一般的なデータ構造の最大要素を見つける方法を、それぞれの特徴を考慮しながら説明しました。