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

Pythonで2つのリストの要素同士を割り算する方法

Pythonでは、データ処理の一環として、2つのリストの対応する要素同士を割り算(除算)したいケースがあります。本記事では、その実現方法を2つのアプローチでわかりやすく解説します。

方法1:zip関数を使う

zip関数を使うと、2つのリストから要素を1つずつペアとして取り出せます。この各ペアに対して除算演算子「/」を適用し、計算結果を新しいリストに格納します。リスト内包表記と組み合わせると、簡潔に記述できるのが特徴です。

サンプルコード

# 元となるリスト
list1 = [12,4,0,24]
list2 = [6,3,8,-3]

# リストの内容を表示
print("Given list 1 : " + str(list1))
print("Given list 2 : " + str(list2))

# zipでペアを作り、各ペアを割り算
res = [i / j for i, j in zip(list1, list2)]

print(res)

実行結果

上記のコードを実行すると、次のような出力が得られます。

Given list 1 : [12, 4, 0, 24]
Given list 2 : [6, 3, 8, -3]
[2.0, 1.3333333333333333, 0.0, -8.0]

方法2:truedivとmapを使う

Python標準ライブラリのoperatorモジュールには、真の除算(true division)を行うtruedivが用意されています。これをmap関数と組み合わせることで、2つのリストの各要素ペアに対して繰り返し除算を適用できます。リスト内包表記よりも関数型らしい書き方で、処理の意図が明確になるのがメリットです。

サンプルコード

from operator import truediv

# 元となるリスト
list1 = [12,4,0,24]
list2 = [6,3,8,-3]

# リストの内容を表示
print("Given list 1 : " + str(list1))
print("Given list 2 : " + str(list2))

# mapでtruedivを各要素ペアに適用
res = list(map(truediv, list1, list2))

print(res)

実行結果

こちらも実行すると、同じ結果が得られます。

Given list 1 : [12, 4, 0, 24]
Given list 2 : [6, 3, 8, -3]
[2.0, 1.3333333333333333, 0.0, -8.0]

まとめ

どちらの方法でも結果は同じですが、可読性や用途に応じて使い分けるとよいでしょう。シンプルに書きたい場合はzip+リスト内包表記、既存の演算子関数を活用したい場合はtruediv+mapがおすすめです。なお、割る数に0が含まれるリストではZeroDivisionErrorが発生するため、事前にチェックしておくことも重要です。

  1. Pythonでリストを定義する方法とは?基本の書き方を初心者向けに解説

    リスト(List)は、Pythonにおける基本的なシーケンス型データ構造の一つです。複数の要素を角括弧 [ ] で囲み、カンマで区切って表現します。各要素は文字列や数値など異なるデータ型が混在していても問題ありません。また、リストは順序付き(ordered)コレクションであるため、格納した要素の並び順は保持されます。個々の要素には、0から始まるインデックスを使ってアクセスできます。たとえば最初の要素はインデックス 0、2番目の要素は 1 で参照します。リストの定義例list1 = [physics, chemistry, 1997, 2000] list2 = [1, 2, 3, 4, 5]

  2. Pythonリスト入門:作成から操作、削除まで徹底解説

    このチュートリアルでは、Pythonのリスト(List)について学びます。リストの作成方法、要素へのアクセス、要素の追加・削除、リスト自体の削除など、基本的な操作を一つずつ丁寧に解説していきます。 Pythonでは、リストは角括弧 [] を使って構築し、各要素はカンマ , で区切って記述します。 Pythonのリストは、異なる型のオブジェクトを混在させて格納できるのが特徴です。すべて文字列である必要も、整数である必要もありません。例えば、以下のように複数の型が混ざったリストを作成できます。mixedTypesList = [a, True, 1, 1.0] リストの作成方法 リストは、角括弧