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

Pythonプログラム – リストから「山(ピーク)」または「谷」の数を出力する方法

リストの中に含まれる「山(ピーク)」や「谷」の個数を出力したい場合、シンプルな繰り返し処理と条件判定を組み合わせることで実現できます。

ここでいう「山」とは、両隣の要素よりも大きい値を持つ要素のこと、「谷」とは、両隣の要素よりも小さい値を持つ要素のことを指します。リストの先頭と末尾の要素は隣接する要素が2つ存在しないため、判定対象から除外されます。

サンプルコード

my_list = [11, 12, 24, 12, 36, 17, 28, 63]

print("The list is :")
print(my_list)

my_result = 0

for index in range(1, len(my_list) - 1):
    if my_list[index + 1] > my_list[index] < my_list[index - 1] or my_list[index + 1] < my_list[index] > my_list[index - 1]:
        my_result += 1

print("The result is :")
print(my_result)

出力結果

The list is :
[11, 12, 24, 12, 36, 17, 28, 63]
The result is :
4

コードの解説

  • まず、整数のリストを定義し、その内容をコンソールに表示します。

  • カウント用の整数変数を0で初期化します。

  • range(1, len(my_list) - 1) を使用することで、リストの先頭と末尾を除いた要素だけを順番に処理します。

  • 各要素について、Pythonの連鎖比較を利用し、「次の要素より大きく、かつ前の要素より小さい」(=谷)、または「次の要素より小さく、かつ前の要素より大きい」(=山)という条件を一度に判定します。

  • 条件を満たす要素が見つかるたびに、カウンタ変数を1ずつ増加させます。

  • 最終的なカウント結果をコンソールに出力して完了です。

この例の場合、リスト内の 24・12・36・17 の4つの要素がそれぞれ山または谷に該当するため、実行結果は「4」となります。この手法は時系列データや数値列における極値(局所的最大値・最小値)の検出にも応用できる、非常に汎用性の高いパターンです。

  1. 【Python】タプルが出現するまでリスト内の要素数をカウントする方法

    リストAが与えられたとき、このリストにはネストされたタプルが含まれています。ここでの課題は、タプルの要素に到達するまで、リスト内の要素数をカウントすることです。この処理には、Python組み込みの isinstance() 関数を使用します。 isinstance() 関数は2つの引数を受け取ります。第1引数の「object」は判定対象となるオブジェクト、第2引数の「classinfo」はクラス・型、あるいはクラスや型のタプルです。オブジェクトが指定したクラス(またはそのサブクラス)のインスタンスである場合、もしくはタプル内のいずれかの型に一致する場合に True を返し、それ以外の場合は F

  2. 【Python入門】リストから一意の値(重複しない要素)だけを抽出して出力する方法

    リストが与えられたとき、その中から重複を除いた一意の値(ユニークな要素)だけを取り出して表示するのが、この記事の目的です。Pythonを使えば、初心者でも簡単に実装できる定番の処理なので、ぜひマスターしておきましょう。実行例入力:A = [1, 2, 3, 4, 2, 1, 9] 出力:[1, 2, 3, 4, 9]リスト内に同じ値が複数回現れていても、出力されるのはそれぞれ1回だけです。アルゴリズムステップ1:ユーザーからリストを入力として受け取る。 ステップ2:空のリストを作成する。 ステップ3:元のリストの全要素を順番に走査する。 ステップ4:その要素がすでに一意のリストに存在するかどう