リストの要素ごとの追加: 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 サイトの他の関連記事を参照してください。