Python でリストを乗算する方法: 7 つの簡単な方法

Python でリストを乗算する方法: 7 つの簡単な方法

Python でのリストの乗算は、数学的計算を実行したり、データ操作の問題を解決したりするときによく行われる操作です。このタスクを達成するには、要件と使用可能なライブラリに応じて、複数の方法があります。

Python でリストを乗算するには、for ループ、リスト内包表記、zip、ma​​p 関数、または組み込みの functools モジュールを使用できます。NumPy などの外部 Python ライブラリの関数を使用することもできます。

この記事では、リストを乗算するさまざまな方法をコード例と説明した結果とともに紹介します。

始めましょう!

目次

Pythonの2種類の数値リスト乗算

特定のメソッドに入る前に、それらのメソッドで実現されるリスト乗算の種類を理解しておく必要があります。

Python には、リスト乗算という広義の概念に基づくいくつかの異なる概念があります。これには、リストを複製したり、リスト内の要素のデカルト積を取得したりすることが含まれます。

この記事では、リスト内の要素の 2 種類の算術乗算に焦点を当てます。

  1. 値による乗算

  2. 要素ごとの乗算

これら 2 つの概念を簡単に見てみましょう。

1. 値による乗算

整数のリストがある場合、各要素に特定の値を乗算することができます。たとえば、リスト [1, 2, 3] があり、各要素に値 3 を掛けたいとします。

次のコードのように、乗算演算子を (誤って) 使用しようとする可能性があります。

list1 = [1, 2, 3]
result = list1 * 3

結果が [1、2、3、1、2、3、1、2、3] であることに驚かれるかもしれません。これはリスト レプリケーションと呼ばれます。

2. 要素ごとのリスト乗算

[1, 2, 3] と [4, 5, 6] の 2 つのリストがあるとします。

リスト内の同じインデックスにある要素を乗算して、結果として [4, 10, 18] を生成したいとします。

「*」演算子を使用して 2 つのPython リストを乗算しようとすると、エラーが発生します。

TypeError: シーケンスに型 'list' の非 int を乗算できません

これは、乗算演算子が、整数や浮動小数点数の場合のようにリストを操作するように設計されていないためです。代わりに、リストの乗算には、要素ごとの乗算として知られる操作が必要です。

要素ごとの乗算では、2 つのリストの対応する要素をペアにして乗算し、新しいリストを形成します。

これら 2 つの概念は理解できました。正しい結果を得るために、さまざまなテクニックを試してみましょう。

Python で For ループを使用して複数のリスト要素を作成する方法

Python でリストを乗算する方法: 7 つの簡単な方法

リスト要素に値を乗算するとします。このアプローチでは、 for ループを使用して要素を反復処理し、それぞれに 2 番目の値を乗算します。

以下は 1 つのリストの例です。result 変数は出力リストを保持します。

list1 = [1, 2, 3, 4]
factor = 3
result = []

for element in list1:
    result.append(element * factor)

この場合、結果リストは [3, 6, 9, 12] になります。

乗算にリスト内包表記を使用する方法

リスト内包表記は、数値タイプのリスト乗算を実行する簡潔な方法を提供します。forループを使用した場合と同じ結果が得られますが、構文はよりコンパクトになります。

リスト内包表記を使用した前の例は次のとおりです。

list1 = [1, 2, 3, 4]
factor = 3
result = [element * factor for element in list1]

このコードの結果は、前と同じ出力 [3, 6, 9, 12] になります。

Zip 関数を使用して要素ごとの乗算を行う方法

Python でリストを乗算する方法: 7 つの簡単な方法

整数のリストが 2 つある場合、リストを要素ごとに乗算することができます。これは、最初のリストの最初の要素と 2 番目のリストの最初の要素を乗算し、同じ位置にある要素を乗算することを意味します。

zip ()関数をリスト内包表記と組み合わせると、これを実現できます。

この関数は 2 つの入力リストの要素を結合し、それらを並列にループできるようにします。同じサイズのリストを使用した例を次に示します。

list1 = [1, 2, 3, 4]
list2 = [2, 3, 4, 5]
result = [a * b for a, b in zip(list1, list2)]

この場合、結果変数には結果のリスト [4, 10, 18] が保持されます。

タプルとコンストラクターの操作

場合によっては、単純な整数ではなくタプルを含むリストを操作する必要があるかもしれません。

2 つのタプルのリストを乗算するには、次の組み合わせを使用できます。

  • zip()関数

  • タプルコンストラクター

  • リスト内包表記

以下に例を示します。

list1 = [(1, 2), (3, 4)]
list2 = [(5, 6), (7, 8)]

result = [tuple(a * b for a, b in zip(t1, t2)) for t1, t2 in zip(list1, list2)]

結果は次のとおりです: [(5, 12), (21, 32)]。

Python でマップと Lambda 関数を使用する方法

Python でリストを乗算する方法: 7 つの簡単な方法

Python の map 関数は、リストなどの反復可能オブジェクト内の各項目に関数を適用する便利な方法です。

Python のラムダ関数は小さな匿名関数です。つまり、名前のない関数です。

2 つのリストを要素ごとに乗算するには、map 関数と lambda 関数を組み合わせることができます。

list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list(map(lambda x, y: x * y, list1, list2))

結果変数には、乗算されたリスト [4, 10, 18] が保持されます。

Python で Operator モジュールを使用する方法

演算子モジュールは、さまざまなデータ構造や型を操作するための便利な関数を豊富に提供します。

Operator.mul ()関数は、map 関数と組み合わせると、整数のリストを乗算するために使用できます。

import operator

list1 = [1, 2, 3]
list2 = [4, 5, 6]

result = list(map(operator.mul, list1, list2))

この例では、演算子モジュールをインポートし、mul()関数と Python の組み込みの map()関数を使用して、2 つのリストの各要素を乗算します。

結果変数には、乗算されたリスト [4, 10, 18] が保持されます。

NumPy ライブラリ: 配列関数と乗算関数

Python でリストを乗算する方法: 7 つの簡単な方法

NumPyライブラリは Python の強力な外部ライブラリであり、数値計算や配列の操作に広く使用されていますこのライブラリは、大きな配列または多次元配列を扱う場合に特に効率的です。

NumPy を使用するには、pip を使用してインストールできます。

pip install numpy

NumPy を使用して 2 つのリストで要素ごとの乗算を実行するには、次の一般的な手順に従います。

  1. numpy.array()を使用して、各リストを NumPy 配列に変換します。

  2. NumPy 乗算関数を使用して乗算を実行します。

  3. 必要に応じて、 tolist()メソッドを使用して結果を Python リストに変換します。

コード例は次のとおりです。

import numpy as np

list1 = [1, 2, 3]
list2 = [4, 5, 6]
arr1 = np.array(list1)
arr2 = np.array(list2)

res_arr = np.multiply(arr1, arr2)
result = res_arr.tolist()

これにより、前の例と同じ結果 [4, 10, 18] が返されます。

Python で Functools と NumPy を組み合わせる方法

functoolsライブラリには、リスト内の項目に特定の関数を累積的に適用し、リストを 1 つの値に減らす Reduce 関数が含まれています

reduce()関数を使用して 2 つのリストを乗算するには、NumPy ライブラリの multiply 関数と組み合わせることができます。

以下に例を示します。

from functools import reduce
import numpy as np

list1 = [1, 2, 3]
list2 = [4, 5, 6]

result = reduce(np.multiply, [list1, list2])

このコードは、必要なライブラリをインポートし、reduce()関数とnumpy.multiply()を使用して、2 つのリストの要素ごとの乗算を実行します。

Python でのリストおよびその他のデータ構造の操作

データ分析のほとんどの側面では、リスト、セット、その他のデータ構造を操作する必要があります。たとえば、欠損データを補間で処理するときに知識を活用します。

いくつかの高度なテクニックについては、このビデオをご覧ください。

最終的な考え

Python でリストを算術的に乗算するさまざまな方法を学習しました。組み込みのモジュールと関数のみを使用するものもありますが、サードパーティのライブラリに依存するものもあります。

要素ごとの乗算を実行できる機能により、無数のアプリケーションへの扉が開かれます。データ分析から機械学習に至るまで、これらの操作は多くのアルゴリズムや計算タスクに不可欠な部分です。

この記事では乗算に焦点を当てましたが、学んだ概念は他の演算にも適用されます。要素ごとの加算、減算、除算もほぼ同じ方法で実行できます。

これらの概念を定着させる最善の方法は、それらを適用することであることを忘れないでください。それでは、Python 環境を起動して実験を開始してください。タスクを自動化する場合でも、データを操作する場合でも、複雑なソフトウェアを構築する場合でも、これらのテクニックは間違いなく役に立ちます。

ハッピーパイソン!


Power Automate の文字列関数: Substring と IndexOf

Power Automate の文字列関数: Substring と IndexOf

Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates ツールチップを使用すると、より多くの情報を 1 つのレポート ページに圧縮できます。効果的な視覚化の手法を学ぶことができます。

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を作成し、データを受信する方法を学んでいます。

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で簡単に日付テーブルを作成する方法について学びましょう。データの分析と視覚化のための効果的なツールとして活用できます。

2 つの方法による SharePoint 列の検証

2 つの方法による SharePoint 列の検証

SharePoint 列の検証の数式を使用して、ユーザーからの入力を制限および検証する方法を学びます。

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel ファイルおよび CSV ファイルにエクスポートする方法を学び、さまざまな状況に最適なエクスポート方法を決定できるようにします。

Power Automate のオンプレミス データ ゲートウェイ

Power Automate のオンプレミス データ ゲートウェイ

ユーザーがコンピューターから離れているときに、オンプレミス データ ゲートウェイを使用して Power Automate がデスクトップ アプリケーションにアクセスできるようにする方法を説明します。

DAX 数式での LASTNONBLANK の使用

DAX 数式での LASTNONBLANK の使用

DAX 数式で LASTNONBLANK 関数を使用して、データ分析の深い洞察を得る方法を学びます。

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

LuckyTemplates で予算分析とレポートを実行しながら、CROSSJOIN 関数を使用して 2 つのデータ テーブルをバインドする方法を学びます。

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

このチュートリアルでは、LuckyTemplates TREATAS を使用して数式内に仮想リレーションシップを作成する方法を説明します。