python somme des valeurs de liste de liste
J'ai une liste de listes et j'ai besoin de faire la somme des listes internes, par exemple,
a = [[1,2,3], [2,1,4], [4,3,6]]
pour mon cas, le len de a[i] est la même, c'est-à toutes les listes internes ont la même dimension.
et j'ai besoin de la sortie comme
result = [6,7,13]
ce que j'ai fait est:
result = [sum(a[i]) for i in range(len(a))]
Depuis mon len(a) est très élevé, j'espère qu'il y aura une autre façon d'obtenir le résultat sans l'aide de la boucle for.
OriginalL'auteur Thiru | 2012-11-08
Vous devez vous connecter pour publier un commentaire.
Est la façon dont je le ferais. Sinon:
La deuxième variation est la même que la vôtre, sauf qu'il évite le superflu gamme de déclaration. En Python, vous pouvez parcourir les listes directement sans avoir à garder une variable distincte comme un indice.
map
, vous pourriez envisager de fairelist(map(sum, a))
pour assurer unelist
objet est le résultat final.la carte est la solution la plus rapide je pense ,,, est-il possible que la carte ne serait pas le résultat dans une liste?
Techniquement, si vous avez imprimé
map(sum, a)
vous obtenez<map object at -some memory address->
, depuis lemap object
est ce quemap()
retourne.c'est ce que j'ai obtenu en py2.6
>>> print map(sum,a) [6, 12]
... mais vous pouvez avoir un point pour 3+ maistype(map(sum,a)) == <type 'list'>
au moins dans la version 2.6 de pythonC'est vrai pour Python 3, mais pas pour Python 2.
OriginalL'auteur mpenkov
Je sais que personne ne l'aime, mais juste pour donner une option:
OriginalL'auteur Artsiom Rudzenka
Une réponse simple.
OP
ne veux pas de boucle (Il voulait dire la Compréhension de Liste, en fait)OriginalL'auteur Martlark