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) を使えばインデックス管理が不要になり、より簡潔に同じ処理を記述することも可能です。
-
Pythonのイテラブルとイテレータの違いをわかりやすく解説
Pythonにおけるイテラブルとは、組み込み関数iter()に渡したときにイテレータを生成できるオブジェクトのことです。あるオブジェクトがイテラブルであるためには、いくつかの条件を満たす必要があります。具体的には、そのクラスのオブジェクトが__len__と__getitem__という2つのインスタンスメソッドを定義していなければなりません。これらの条件を満たすオブジェクトをiter()に渡すと、イテレータが生成されます。 それでは、以下の例でイテラブルの動きを確認してみましょう。 string = Tutorialspoint for char in string: print(ch
-
Pythonの「==」と「is」演算子の違いをわかりやすく解説
「==」と「is」の基本的な違い Pythonには、オブジェクトを比較するための方法として「==」演算子と「is」演算子の2つがあります。一見すると似たような働きをするように見えますが、この2つはまったく異なる目的を持っています。 「==」(等価演算子)は、2つの変数の値が等しいかどうかを比較します。一方、「is」(同一性演算子)は、2つの変数が同じオブジェクト(同じメモリ上の場所)を参照しているかどうかを確認します。 サンプルコード 以下のコードは、「==」と「is」の動作の違いを示すシンプルな例です。ここでは空のリストを扱っています。list1とlist2はそれぞれ独立した別々の空のリスト