Maison >développement back-end >Tutoriel Python >Quelle est la manière la plus pythonique d'effectuer une addition de vecteurs par éléments ?

Quelle est la manière la plus pythonique d'effectuer une addition de vecteurs par éléments ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-29 01:39:11507parcourir

What's the Most Pythonic Way to Perform Element-wise Vector Addition?

Addition de vecteurs par éléments : les approches les plus pythoniques

Supposons que vous ayez deux listes, list1 et list2, et que vous souhaitiez effectuer une ajout élément par élément, résultant en une nouvelle liste. Quelle est la manière la plus Pythonique d'y parvenir ?

Pour éviter la tâche potentiellement lente et verbeuse de parcourir les listes, il existe deux options Pythoniques très efficaces :

  1. Utilisation de map avec Operator.add :
from operator import add
list(map(add, list1, list2))

Cette approche utilise la fonction map() pour appliquer l'ajout opération du module opérateur vers chaque paire d’éléments correspondante dans les listes. Le résultat est un objet générateur qui est converti en liste.

  1. Emploi d'une compréhension de liste avec zip :
[sum(x) for x in zip(list1, list2)]

Ici, zip () combine les éléments des deux listes en paires, où chaque paire représente les éléments correspondants à ajouter. La compréhension de la liste parcourt ensuite ces paires et utilise sum() pour accumuler leurs valeurs, produisant ainsi le résultat d'addition élément par élément souhaité sous forme de liste.

Pour les grandes listes, envisagez d'utiliser le plus rapide itertools.izip au lieu de zip pour l'optimisation des performances. Cependant, les deux approches offrent une excellente efficacité dans la plupart des scénarios.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn