2012-06-04 17 views
39

özelliğine sahip C sınıfına sahibim.Toplam/Ortalama Python'daki nesnelerin bir özniteliği

a toplamı Python'da C listesinden toplamış olmanın en iyi yolu nedir?

+0

muhtemelen 'smallcase' işlevini kullanmak için en iyi 'a' yerine – jamylak

+0

http://whathaveyoutried.com/ – Marcin

+2

@Marcin for c_list; toplam + = c.a; ama biliyorum ki bunu yapmanın doğru yolu değil, söylemeye gerek yok. – jsj

cevap

97

kullanın generator expression:

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

12 dakika daha kabul edemez :) – jsj

+5

Sadelik güzeldir:] – invert

+0

Birden fazla öznitelik toplamı almak için, herhangi bir kısa yol var mı? toplam (c_listede c için c.A) toplamı (c_listede c için c.B) toplamı (c_listede c için c.C) bunun herhangi bir performans uygulaması var mı? –

2

Ben benzer bir görevi vardı, ama benim Ayrıntınız C.A. gibi bir zaman süresini toplayarak içeriyordu Başka bir soru ile bu birleştiren linkte belirtildiği gibi, toplamı bir başlangıç ​​değeri ihtiyacı Çünkü

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

ile geldi, here istedi.