l1とl2という名前の2つのリストの要素(要素ごとの要素)を合計したい場合は、どうすればよいのでしょうか。
l3 = [i + j for i, j in zip(l1,l2)]
またはリストを配列として変換し、単純な合計を実行します
from numpy import array
l3 = list(array(l1) + array(l2))
それはおそらくリストの大きさに依存します。
numpy
は大量のデータセットを効率的に操作するように設計されていますが、ネイティブPythonの一部ではないため、一定のオーバーヘッドが発生します。
また、パフォーマンスを重視する場合は、itertools.izip
速度が向上する可能性があります。
ランダムなリストの場合、[i+j for i,j in izip(l1, l2)]
重要なパフォーマンスを問題にするほど大きくないことを前提として、単純さ/読みやすさのためにおそらく使用します。
次のものも使用できます。
from operator import add
map(add, list1, list2)
これは、潜在的に最適化されたものを使用し、 /のoperator.add
使用を回避します。これにより、入力が最短のシーケンスに切り捨てられ、エラーがサイレントに失敗します。ただし、 (well )は例外を発生させます。zip
izip
map
operator.add
おそらく、純粋なPythonでできる最善のことです...