Comment puis-je calculer la somme d'un tableau multidimensionnel dans la plus succincte python?
Le plus proche était celui en additionnant les colonnes.
Donc je vais faire quelque chose de semblable dans ma question:
Dire que j'ai un Python 2D liste comme ci-dessous:
my_list = [ [1,2,3,4],
[2,4,5,6] ]
Je peux obtenir les totaux de ligne, avec une compréhension de liste:
row_totals = [ sum(x) for x in my_list ]
En une seule ligne, comment puis-je somme l'ensemble de la 2d array?
27
OriginalL'auteur Mark Mayo | 2012-02-29
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire aussi facile que
ou sinon
et l'appeler un jour, si vous ne vous attendez pas à plus de 2 dimensions. Notez que la première solution est probablement pas le plus rapide (en temps d'exécution) de la solution, en raison de l'utilisation de
map()
. De référence et de comparer nécessaire.Enfin, si vous vous trouvez à l'aide de tableaux multidimensionnels, pensez à utiliser NumPy et sa matrice supérieure des fonctions pratiques. Voici un court extrait de votre problème:
Ce serait travailler pour n'importe quel nombre de dimensions de vos tableaux pourriez avoir.
map
n'est pas généralement lente.il est en Python 2.x.
Les chiffres sont en désaccord avec vous: ideone.com/4RXfR et ideone.com/6tOEJ
il vous manque le point-si vous utilisez un liste de la compréhension puis l'avantage de
map
s'en va. Sinon, il alloue une inutiles de la liste.Non, je ne pense pas que je suis à côté de la question. Dans une comparaison équitable, la carte est plus rapide. En fait, vous pouvez vérifier les liens de ces nouveau - j'ai mis à jour afin d'utiliser la somme de carte vs somme de générateur d'expression.
OriginalL'auteur mindcorrosive
()
pas[]
).vous avez raison, ainsi que mindcorrosive. J'ai pris OP code pour tester, puis oublié de retirer les places.
OriginalL'auteur CapelliC
Une autre solution à l'aide de
itertools
:OriginalL'auteur Tim Pietzcker
OriginalL'auteur John La Rooy
Vous pouvez utiliser la somme pour ajouter des listes internes et la somme résultant de liste aplatie:
OriginalL'auteur Henry