Sum / Average atrybut listy obiektów
Powiedzmy, że mam klasę C
, która ma atrybut a
.
Jaki jest najlepszy sposób na uzyskanie Sumy a
z listy C
w Pythonie?
Próbowałem poniższego kodu, ale wiem, że to nie jest dobry sposób, aby to zrobić:
for c in c_list:
total += c.a
84
4 answers
Użyj wyrażenia generatora :
sum(c.a for c in c_list)
187
Author: phihag,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-20 14:17:28
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-20 14:17:28
Jeśli szukasz innych miar niż suma, np. średnia / odchylenie standardowe, możesz użyć NumPy i zrobić:
mean = np.mean([c.a for c in c_list])
sd = np.std([c.a for c in c_list])
9
Author: Heribert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-20 14:18:26
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-20 14:18:26
Miałem podobne zadanie, ale moje polegało na podsumowaniu czasu jako twojego atrybutu c.a
.
Łącząc to z innym pytaniem zadanym tutaj , wymyśliłem
sum((c.a for c in cList), timedelta())
Ponieważ, jak wspomniano w linku, sum
potrzebuje wartości początkowej.
4
Author: Bill Kidd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-20 14:18:02
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-20 14:18:02
Użyj wbudowanego modułu statistics
:
import statistics
statistics.mean((o.val for o in my_objs))
0
Author: Shital Shah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-24 19:27:27
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-24 19:27:27