要素ごとのベクトル加算: 最も Python 的なアプローチ
2 つのリスト list1 と list2 があり、要素ごとに加算して、新しいリストを作成します。これを達成するための最も Python 的な方法は何ですか?
リストを反復処理するという潜在的に遅くて冗長なタスクを回避するために、2 つの非常に効率的な Python 的なオプションがあります:
from operator import add list(map(add, list1, list2))
このアプローチでは、map() 関数を使用して、演算子モジュールからの追加操作をリスト内の対応する要素の各ペアに適用します。結果は、リストに変換されるジェネレーター オブジェクトです。
[sum(x) for x in zip(list1, list2)]
ここでは、zip () は 2 つのリストの要素をペアに結合します。各ペアは加算対象の対応する要素を表します。次に、リスト内包表記はこれらのペアを反復処理し、sum() を使用してそれらの値を累積し、必要な要素ごとの加算結果をリストとして出力します。
大きなリストの場合は、zip の代わりに高速な itertools.izip を使用することを検討してください。パフォーマンスの最適化のために。ただし、どちらのアプローチも、ほとんどのシナリオで優れた効率を実現します。
以上が要素ごとのベクトル加算を実行する最も Python 的な方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。