ホームページ >バックエンド開発 >Python チュートリアル >Python でリストの要素ごとの追加を効率的に実行するにはどうすればよいですか?

Python でリストの要素ごとの追加を効率的に実行するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-05 06:58:14820ブラウズ

How Can I Efficiently Perform Element-Wise Addition of Lists in Python?

リストの要素ごとの追加: Python の効率

リストを操作するとき、要素ごとの操作を実行する必要がよくあります。以下に示すように、2 つのリストの要素を位置的に追加するタスクを考えてみましょう:

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

必要な出力は次のとおりです:

[1, 2, 3]
+  +  +
[4, 5, 6]
|| || ||
[5, 7, 9]

この要素ごとの追加を実現するには、いくつかの Python アプローチが存在します。 :

方法 1:operator.add およびmap

operator.add モジュールは、要素ごとの追加に必要な機能を提供します。 Map 関数を利用すると、両方のリストを同時に反復処理して追加操作を適用できます。

from operator import add
result = list(map(add, list1, list2))

方法 2: zip とリスト内包表記

zip 関数リストの要素をタプルに結合します。タプルはリスト内包でさらに操作できます。このアプローチには、タプルから値を抽出し、それらを合計することが含まれます。

result = [sum(x) for x in zip(list1, list2)]

パフォーマンスに関する考慮事項

方法の選択は、パフォーマンス要件に依存する場合があります。次のタイミング比較は、大きなリストに対しては、map(add, list1, list2) アプローチが最も高速であることを示しています。 zip ベースのメソッドは、追加のタプル操作により遅くなります。

たとえば、それぞれ 100,000 個の要素を含むリストの場合:

%timeit from operator import add;map(add, list1, list2)
10 loops, best of 3: 44.6 ms per loop
%timeit from itertools import izip; [a + b for a, b in izip(list1, list2)]
10 loops, best of 3: 71 ms per loop
%timeit [a + b for a, b in zip(list1, list2)]
10 loops, best of 3: 112 ms per loop

より複雑な操作の場合、追加のメソッドが必要になる場合があります。ただし、要素ごとの加算という単純なタスクの場合は、上で概説したアプローチが最も Python 的で効率的なソリューションを提供します。

以上がPython でリストの要素ごとの追加を効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。