Python – リスト内のピーク要素を確認する方法
リスト内の「ピーク要素」(隣接する要素以上の値を持つ要素) を確認したい場合、リストを走査する関数を定義し、隣接する要素同士を比較することで結果を求めることができます。この記事では、その具体的な実装方法をサンプルコードとともに解説します。
サンプルコード
以下に実際のコード例を示します。
def find_peak(my_array, array_length):
if (array_length == 1):
return 0
if (my_array[0] >= my_array[1]):
return 0
if (my_array[array_length - 1] >= my_array[array_length - 2]):
return array_length - 1
for i in range(1, array_length - 1):
if (my_array[i] >= my_array[i - 1] and my_array[i] >= my_array[i + 1]):
return i
my_list = [1, 3, 20, 4, 1, 0]
list_length = len(my_list)
print("The list is :")
print(my_list)
print("The result is")
print(find_peak(my_list, list_length))
出力
The list is : [1, 3, 20, 4, 1, 0] The result is 2
解説
まず 'find_peak' という名前の関数を定義し、リスト本体とその長さを引数として受け取ります。
リストの長さが1の場合は、それ自体がピークとなるためインデックス0を返します。
先頭要素が2番目の要素以上であればインデックス0を、末尾要素がその直前の要素以上であれば末尾のインデックスをそれぞれ返します。
いずれにも該当しない場合は、forループでリストを反復処理し、左右どちらの隣接要素よりも大きいか等しい最初の要素のインデックスを返します。
関数の外側では、対象となるリストを定義し、コンソールに表示します。
len() 関数を使ってリストの長さを取得し、変数に代入します。
必要なパラメータを渡して関数を呼び出し、その結果をコンソールに出力します。
この例では、値20が含まれるインデックス2がピーク要素として返されます。
-
【Python】リスト内のすべての要素が同じ値かどうかを確認する3つの方法
リスト内の要素がすべて同じ値であるかどうかを確認したい場面はよくあります。たとえば、データの整合性チェックやバリデーション処理などで必要になることがあります。Pythonでは、このような判定をいくつかの方法で実装できます。本記事では、代表的な3つのアプローチをサンプルコードとともにわかりやすく解説します。1. forループを使う方法まずリストの先頭要素を取得し、forループで各要素を順番に先頭要素と比較していきます。途中で一致しない要素が見つかった時点でループを抜け、結果をFalseにするのがポイントです。サンプルコードList = [Mon, Mon, Mon, Mon] result =
-
【初心者向け】Pythonでリストのサイズ(要素数)を取得する方法
リスト(list)は、Pythonにおける代表的なコレクション型のデータ構造の一つです。リストの要素は後から変更でき、重複した値を持つこともできます。本記事では、Pythonでリストのサイズ(長さ)を取得する方法を解説します。具体的には、重複の有無にかかわらず、リストに含まれる全要素の数をカウントする方法を紹介します。リストの長さを取得する基本:len()関数Pythonでリストの要素数を取得するには、組み込み関数の len() を使用します。len() はリストだけでなく、タプル・文字列・辞書などさまざまなコレクションに対しても利用できる汎用的な関数です。サンプルコード以下の例では、「day