donné 3 vecteurs imbriqués:
>>> [map(sum,zip(i,j,k)) for i,j,k in zip(a,b,c)] [[111, 222, 333], [444, 555, 666], [777, 888, 999]]
3 Réponses :
Cela devrait fonctionner:
lists = [a,b,c] [map(sum,zip(*zipped_lists)) for zipped_lists in zip(*lists)]
Voici une approche générale: démo: p> Notez que depuis dans Python 2.7 Voici un autre moyen d'utiliser < code> ithertools.stamap () code> qui est plus rapide que l'approche précédente: p> référence: p> zip code > Retourne une liste Il est préférable de l'utiliser lorsque vous souhaitez uniquement itérer les résultats, et utilisez plutôt ithertool.izip code> qui renvoie un itérateur. P>
Si vous avez une liste de listes ( [A, B, C] CODE>), vous pouvez procéder comme suit: >>> lists = [a,b,c]
>>> [map(sum, zip(*l)) for l in zip(*lists)]
[[111, 222, 333], [444, 555, 666], [777, 888, 999]]
Sans bibliothèques externes tu veux dire?
itTools code> peut être une importation utileDe plus, peut-il être généralisé à des niveaux arbitraires de nidification? (pas mon problème réel mais je viens de me survenir comme associé)
@ cricket_007 merci - c'est plus ce que je voulais dire. Je vais éditer la question.
@ paulw1128 Vous faites glisser vers la récursion avec vos pensées. Sois fils prudent. XD