2012-06-04 2 views
39

Допустим, у меня есть класс C который имеет атрибут a.Сумма/Среднее значение атрибута списка объектов в Python

Каков наилучший способ получить сумму a из списка C в Python?

+0

возможно лучше всего использовать 'lowercase', поэтому' a' вместо 'A' – jamylak

+0

http://whathaveyoutried.com/ – Marcin

+2

@Marcin для c в c_list; total + = c.a; но я знаю, что это не правильный способ сделать это, мне не нужно рассказывать. – jsj

ответ

97

Используйте generator expression:

sum(c.A for c in c_list) 
+0

can not accept for еще 12 минут :) – jsj

+5

Простота красива:] – invert

+0

Чтобы получить несколько сумм атрибутов, есть ли короткий путь? sum (c.A for c in c_list) sum (c.B for c in c_list) sum (c.C для c в c_list), это имеет какие-либо последствия для производительности? –

2

У меня была аналогичная задача, но мой Приглашена суммированием продолжительности времени как атрибуте с.а. Комбинируя это с другим вопросом, задаваемым here, я придумал

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

Потому что, как указано в ссылке, сумме нужна начальное значение.

Смежные вопросы