Disons que j'ai la classe C
qui a l'attribut a
.
Quelle est la meilleure façon d'obtenir la somme de a
à partir d'une liste de C
en Python?
J'ai essayé le code suivant, mais je sais que ce n'est pas la bonne façon de le faire:
for c in c_list:
total += c.a
Utilisez une expression de générateur :
sum(c.a for c in c_list)
J'ai eu une tâche similaire, mais la mienne consistait à additionner une durée comme attribut c.a
. En combinant cela avec une autre question posée ici , je suis venu avec
sum((c.a for c in cList), timedelta())
Parce que, comme mentionné dans le lien, sum
a besoin d'une valeur de départ.
Si vous recherchez d'autres mesures que la somme, par ex. moyenne/écart type, vous pouvez utiliser NumPy et faire:
mean = np.mean([c.a for c in c_list])
sd = np.std([c.a for c in c_list])