Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python:リスト内の最大値のインデックスを取得する

インデックスを作成することで、リストからアイテムまたはアイテムの範囲を取得できます。リストから特定のアイテムを取得できるのは、その値に関連付けられているインデックス番号がわかっている場合のみです。

リスト内の最大のアイテムのインデックス値を見つけるには、max()を使用できます。 およびindex() メソッド。このガイドでは、リスト内の最大要素のインデックス値を取得するプログラムについて説明します。

Python:リスト内の最大値のインデックス値を取得する

前回の数学のテストで最高の成績を収めた生徒の名前を取得するプログラムを作成します。次に、この名前がコンソールに出力されます。

まず、2つのリストを作成します。

students = ["Andy", "April", "Julia", "Gary"]
grades = [75, 82, 64, 68]

最初のリストには、クラスの生徒の名前が含まれています。 2番目のリストには、それぞれのグレードが含まれています。

これらのリストは並列配列です。つまり、両方の配列が同じサイズであり、各値がレコードの一部を表します。 「students」には名前が含まれ、「grades」にはそれらの学生が獲得した成績が含まれます。

次に、リストで最大のグレードを見つけます。 max()関数を使用して、リスト内の最大のグレードを見つけることができます。

largest = max(grades)

このコードは最大数を取得します。これは必ずしも理想的ではありません。最大数のインデックス位置を取得したい。これを行うには、別の組み込み関数index()を使用します。リスト内の最大のアイテムのインデックス値を取得してみましょう。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

index_of_largest = grades.index(largest)

2つのリストは並列であるため、「成績」リストの最高成績のインデックス番号は、「学生」リストのその成績を取得した学生のインデックス番号と同じです。

次に、最高の成績を獲得した人を知らせるメッセージをコンソールに印刷します。

print("{} earned the highest grade in the class. Their grade was {}.".format(students[index_of_largest], largest))

インデックス構文を使用して、最高の成績を収めた学生の名前を取得します。次に、この値と獲得したグレードを文字列に追加します。

プログラムを実行して、何が起こるかを確認します。

April earned the highest grade in the class. Their grade was 82.

このコードは、最高の成績を収めた学生を正常に識別します。最小要素のインデックスを見つけるには、max()に置き換えることができます。 min()の関数 。

最大値に等しい複数のインデックスを見つける

最高学年の生徒が2人いる場合はどうなりますか?上記のプログラムは、特定の成績を取得した最初の学生のインデックス位置のみを返します。

特定の学年を取得したすべての生徒の出現を見つけるには、リスト内包を使用できます。値を初期化し、前述のようにリスト内の最大のアイテムのインデックス値を取得することから始めます。

students = ["Andy", "April", "Julia", "Gary", "Paul"]
grades = [75, 82, 64, 68, 82]
largest = max(grades)

新しいプログラムで2人の生徒が同じ学年を持っている場合にどうなるかを確認するために、1つのレコードを追加しました。

次に、リスト内包表記を記述します。このリスト内包表記は、特定の学年を取得したすべての学生のインデックス位置を検索します。

all_grades = [g for g, x in enumerate(grades) if x == largest]

このコードは、「成績」リストのすべての成績を繰り返します。各グレードは、「グレード」リストの最大値と比較されます。値が最高グレードと等しい場合、その値がリストに追加されます。

enumerate() 関数は、リストをインデックス番号と値の2つのリストに分割します。したがって、「g」はリスト内のアイテムのインデックスを表し、「x」はアイテムの値を表します。

次に、forループを使用して、見つかった最高の成績と同じ成績の生徒ごとにメッセージを出力します。

for g in all_grades:
	print("{} earned the highest grade in the class. Their grade was {}.".format(students[g], grades[g]))

複数の生徒がクラスで最高の成績を収めている場合、forループは複数回実行されます。ループが実行されるたびに、生徒の名前がコンソールに出力され、クラスで最高の成績を収めたことを示すメッセージが表示されます。

プログラムを実行します:

April earned the highest grade in the class. Their grade was 82.
Paul earned the highest grade in the class. Their grade was 82.

私たちのプログラムでは、クラスで最高の成績を収めたすべての生徒の名前が表示されます。

結論

index()を使用して、リスト内のアイテムのインデックス値を取得できます 。 min()と組み合わせる またはmax() メソッドでは、リスト内の最小または最大のアイテムのインデックス値を見つけることができます。

これで、Pythonエキスパートのように、リスト内の最大値のインデックス値を取得するために必要な知識が得られました。


  1. Python –リスト内のインデックス値の繰り返し

    リスト内で繰り返されているインデックス値を見つける必要がある場合は、リスト内包表記を使用して繰り返され、「列挙」されます。 例 以下は同じもののデモンストレーションです my_list = [4, 0, 3, 1] print("The list is :") print(my_list) my_result = [element for sub in ([index] * element for index, element in enumerate(my_list)) for element in sub] print("The result is :

  2. Pythonでリスト内の要素のインデックスを見つける方法は?

    List(および文字列やタプルなどの他のシーケンスタイプ)で使用できるindex()メソッドは、その中の特定の要素の最初の出現を見つけるのに役立ちます。 >>> L1=['a', 'b', 'c', 'a', 'x'] >>> L1 ['a', 'b', 'c', 'a', 'x'] >>> L1.index('a') 0 要素のすべての出現箇所のインデックスを取得す