99

可以说我有C具有属性的类a

从Pythona列表中获取总和的最佳方法是什么?C


我尝试了以下代码,但我知道这不是正确的方法:

for c in c_list:
    total += c.a
4

4 回答 4

220

使用生成器表达式

sum(c.a for c in c_list)
于 2012-06-04T10:33:15.267 回答
9

如果您正在寻找除总和之外的其他度量,例如均值/标准差,您可以使用 NumPy 并执行以下操作:

mean = np.mean([c.a for c in c_list])
sd = np.std([c.a for c in c_list])
于 2019-03-13T08:43:55.367 回答
6

我有一个类似的任务,但我的任务是将持续时间相加作为你的属性c.a将此与此处提出的另一个问题结合起来,我想出了

sum((c.a for c in cList), timedelta())

因为,如链接中所述,sum需要一个起始值。

于 2015-06-24T15:46:35.893 回答
1

使用内置statistics模块:

import statistics

statistics.mean((o.val for o in my_objs))
于 2020-01-24T19:27:27.860 回答