2012-06-04 19 views
39

Digamos que tengo la clase C que tiene el atributo a.Sum/Average un atributo de una lista de objetos en Python

¿Cuál es la mejor manera de obtener la suma de a de una lista de C en Python?

+0

probablemente sea mejor usar 'minúsculas', entonces' a' en vez de 'A' – jamylak

+0

http://whathaveyoutried.com/ – Marcin

+2

@Marcin para c en c_list; total + = c.a; pero sé que esa no es la forma correcta de hacerlo, no necesito que me digan nada. – jsj

Respuesta

97

Utilice un generator expression:

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

no puede aceptar durante 12 minutos más :) – jsj

+5

La simplicidad es hermosa:] – invert

+0

Para obtener la suma de atributos múltiples, ¿hay alguna forma de hacerlo? suma (c.A para c en c_list) suma (c.B para c en c_list) suma (c.C para c en c_list) esto tiene alguna implicación en el rendimiento? –

2

que tenía una tarea similar, pero la mía implicó sumando una duración de tiempo como su atributo C.A. Combinando esto con otra pregunta hecha here, me ocurrió con

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

Debido a que, como se menciona en el enlace, necesita suma un valor de partida.

Cuestiones relacionadas