Sum / Average对象列表的属性

时间:2012-06-04 10:31:58

标签: python list attributes sum

假设我的课程C有属性a

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


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

for c in c_list:
    total += c.a

4 个答案:

答案 0 :(得分:136)

使用generator expression

sum(c.a for c in c_list)

答案 1 :(得分:3)

我有类似的任务,但是我的工作涉及将持续时间总计为属性c.a。 将此问题与here提出的另一个问题相结合,我想出了

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

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

答案 2 :(得分:1)

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

mean = np.mean([c.a for c in c_list])
sd = np.std([c.a for c in c_list])

答案 3 :(得分:0)

使用内置的statistics模块:

import statistics

statistics.mean((o.val for o in my_objs))