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 環境を起動して実験を開始してください。タスクを自動化する場合でも、データを操作する場合でも、複雑なソフトウェアを構築する場合でも、これらのテクニックは間違いなく役に立ちます。

ハッピーパイソン!


Python における Self とは: 実際の例

Python における Self とは: 実際の例

Python における Self とは: 実際の例

RでRDSファイルを保存してロードする方法

RでRDSファイルを保存してロードする方法

R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。

最初の N 営業日の再考 – DAX コーディング言語ソリューション

最初の N 営業日の再考 – DAX コーディング言語ソリューション

この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。

LuckyTemplates のフィルター コンテキストの概要

LuckyTemplates のフィルター コンテキストの概要

この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。

LuckyTemplates を使用したビジネス レポート

LuckyTemplates を使用したビジネス レポート

これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて