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

Pythonで2つのリスト間の最大差を求める方法

Pythonで2つのリストを比較し、対応する要素同士の差の中から最大のもの(最大差)を求めたい場合には、組み込み関数である abs(絶対値)と max(最大値)を組み合わせて使うのが簡単です。

サンプルコード

以下に具体的な実装例を示します。

my_list_1 = [7, 9, 1, 2, 7]
my_list_2 = [6, 3, 1, 2, 1]
print("最初のリスト:")
print(my_list_1)
print("2番目のリスト:")
print(my_list_2)

my_result = max(abs(my_list_2[index] - my_list_1[index])
   for index in range(0, len(my_list_1)))

print("リスト間の最大差は:")
print(my_result)

実行結果

最初のリスト:
[7, 9, 1, 2, 7]
2番目のリスト:
[6, 3, 1, 2, 1]

リスト間の最大差は:
6

コードの解説

  • まず、2つの整数のリストを定義し、それぞれの内容をコンソールに出力して確認できるようにしています。

  • 次に、インデックスを使って両方のリストを走査し、同じ位置にある要素同士の差を計算します。

  • abs 関数によって差の絶対値を求めることで、どちらのリストの値が大きい場合でも正の値として扱えます。

  • ジェネレータ式で生成されたすべての絶対値の差に対して max 関数を適用し、その中で最も大きい値を取得します。

  • 計算結果は変数 my_result に格納され、最後にコンソールへ出力されます。

この例では、2番目の要素同士を比較したときの差「|3 − 9| = 6」が最大となっているため、結果として 6 が出力されます。なお、zip(my_list_1, my_list_2) を使えばインデックス管理が不要になり、より簡潔に同じ処理を記述することも可能です。

  1. Pythonのイテラブルとイテレータの違いをわかりやすく解説

    Pythonにおけるイテラブルとは、組み込み関数iter()に渡したときにイテレータを生成できるオブジェクトのことです。あるオブジェクトがイテラブルであるためには、いくつかの条件を満たす必要があります。具体的には、そのクラスのオブジェクトが__len__と__getitem__という2つのインスタンスメソッドを定義していなければなりません。これらの条件を満たすオブジェクトをiter()に渡すと、イテレータが生成されます。 それでは、以下の例でイテラブルの動きを確認してみましょう。 string = Tutorialspoint for char in string: print(ch

  2. Pythonの「==」と「is」演算子の違いをわかりやすく解説

    「==」と「is」の基本的な違い Pythonには、オブジェクトを比較するための方法として「==」演算子と「is」演算子の2つがあります。一見すると似たような働きをするように見えますが、この2つはまったく異なる目的を持っています。 「==」(等価演算子)は、2つの変数の値が等しいかどうかを比較します。一方、「is」(同一性演算子)は、2つの変数が同じオブジェクト(同じメモリ上の場所)を参照しているかどうかを確認します。 サンプルコード 以下のコードは、「==」と「is」の動作の違いを示すシンプルな例です。ここでは空のリストを扱っています。list1とlist2はそれぞれ独立した別々の空のリスト