ホームページ >バックエンド開発 >Python チュートリアル >Python でリストの要素ごとの追加を実行する最も効率的な方法は何ですか?

Python でリストの要素ごとの追加を実行する最も効率的な方法は何ですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-26 16:00:12769ブラウズ

What's the Most Efficient Way to Perform Element-Wise Addition of Lists in Python?

リストの要素ごとの追加: Python 的アプローチ

2 つのリストの要素ごとの追加は、いくつかの組み込みメソッドを使用して Python で簡単に実行できます。関数で。面倒な反復を行わずにこれを実現する方法は次のとおりです。

operator.addmap() を使用する:

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

map() 関数は、add 関数をそれぞれに適用します。 list1 と list2 の対応する要素を検索し、結果のリストを返します。

または、次のように使用します。 リスト内包表記を使用した zip():

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

zip() 関数は、list1 と list2 の要素をペアにして一連のタプルにします。次に、リスト内包表記によって各タプルの合計が計算され、要素ごとの加算が生成されます。

パフォーマンスの比較:

これらのアプローチの効率を比較するために、タイミングを実行しました。大きなリスト (100,000 要素) のテスト:

>>> from itertools import izip
>>> list2 = [4, 5, 6] * 10 ** 5
>>> list1 = [1, 2, 3] * 10 ** 5

>>> %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

>>> %timeit from itertools import izip; [sum(x) for x in izip(list1, list2)]
1 loops, best of 3: 139 ms per loop

>>> %timeit [sum(x) for x in zip(list1, list2)]
1 loops, best of 3: 177 ms per loop

次のように結果が示すように、operator.add を使用した map() アプローチは、大きなリストに対しては最も高速です。

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

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