Вопрос по python, list – Sum / Average атрибут списка объектов в Python

54

Допустим, у меня есть классC который имеет атрибутa.

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

наверное лучше всего использоватьlowercase, такa вместоA jamylak
whathaveyoutried.com Marcin
@ Марчин Я думаю, что почему-то больше подходит для более сложных вопросов. Это более простой вопрос, основанный на передовом опыте, такой, что есть несколько очевидных решений, но стоит потратить время на изучение тех немногих, которые действительно являются правильными способами сделать это. Было бы трудно разобраться в такого рода вещах, не спросив или не найдя кого-то, кто уже спросил ... что и привело меня сюда. Ben Mordecai
@Marcin для c в c_list; всего + = c.a; но я знаю, что это неправильный способ сделать это, мне не нужно говорить. jsj

Ваш Ответ

3   ответа
3

но моя была связана с суммированием продолжительности времени как вашего атрибута c.A. Объединяя это с другим вопросомВотЯ придумал

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

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

129

Использоватьвыражение генератора:

sum(c.A for c in c_list)
Простота прекрасна:]
не могу принять еще 12 минут :) jsj
@phihag Извините, я собираюсь получить отдельную сумму атрибутов отдельно. Если мой объект имеет 10 атрибутов, я получу 10 для циклов.
Чтобы получить кратную сумму атрибутов, есть ли короткий путь? сумма (c.A для c в c_list) сумма (c.B для c в c_list) сумма (c.C для c в c_list) это влияет на производительность?
@sreemanthpulagam Вы можете просто написатьsum(c.A + c.B + c.C for c in c_list)
0

чем сумма, например, среднее / стандартное отклонение, вы можете использовать NumPy и сделать:

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

Похожие вопросы