Soru Python'daki nesne listesinin bir özniteliğini topla / ortalamala


Dersim var dersim C özniteliği olan a.

Toplamı elde etmenin en iyi yolu nedir a listesinden C Python'da mı?


44
2018-06-04 10:31


Menşei


muhtemelen en iyi kullanmak lowercase, yani a yerine A - jamylak
whathaveyoutried.com - Marcin
C_list'te c için @Marcin; toplam + = c.a; ama biliyorum ki bunu yapmanın doğru yolu değil, söylemeye gerek yok. - jsj
@Marcin Bence bu daha karmaşık sorular için daha uygun olur. Bu, basit, en iyi uygulamalar tarzı bir sorudur, öyle ki, birkaç belirgin çözüm vardır, ancak bunu yapmak için doğru yollar olan birkaçını öğrenmenin vakti gelmiştir. Bu tür bir şeyi sormadan, ya da daha önce sormuş olan birini bulmadan bulmak zor olurdu. - Ben Mordecai


Cevaplar:


Kullanın jeneratör ifadesi:

sum(c.A for c in c_list)

112
2018-06-04 10:33



12 dakika daha kabul edemem :) - jsj
Sadelik güzeldir:] - invert
Birden fazla özellik toplamı almak için kısa bir 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ı? - sreemanth pulagam
@sreemanthpulagam Basitçe yazabilirsiniz sum(c.A + c.B + c.C for c in c_list) - phihag
@phihag üzgünüm, niyetim bireysel öznitelik toplamını ayrı ayrı elde etmektir. Nesnemde 10 özellik varsa, döngüler için 10 ile sona ererim. - sreemanth pulagam


Benzer bir görevim vardı, fakat benimki öznitelik c.A. Bunu başka bir soruyla birleştirmek istedi İşte, Ben geldim

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

Çünkü, bağlantıda belirtildiği gibi, toplamın bir başlangıç ​​değerine ihtiyacı vardır.


2
2018-06-24 15:46