2012-06-04 67 views
39

Cho phép nói rằng tôi có lớp C có thuộc tính a.Tổng/Trung bình thuộc tính của danh sách đối tượng trong Python

Cách tốt nhất để nhận tổng số a từ danh sách C bằng Python là gì?

+0

có lẽ là tốt nhất để sử dụng 'chữ thường', vì vậy' a' thay vì 'A' – jamylak

+0

http://whathaveyoutried.com/ – Marcin

+2

@Marcin for c in c_list; tổng số + = c.a; nhưng tôi biết đó không phải là cách đúng đắn để làm điều đó, tôi không cần phải nói. – jsj

Trả lời

97

Sử dụng một generator expression:

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

không thể chấp nhận trong 12 phút nữa :) – jsj

+5

Tính đơn giản là đẹp:] – invert

+0

Để nhận được tổng số thuộc tính, có cách nào ngắn không? tổng (c.A cho c trong c_list) tổng (c.B cho c trong c_list) tổng (c.C cho c trong c_list) này có bất kỳ ý nghĩa hiệu suất? –

2

Tôi đã có một nhiệm vụ tương tự, nhưng tôi liên quan đến việc tổng hợp một thời gian thời gian như C.A. thuộc tính của bạn Kết hợp điều này với một câu hỏi khác hỏi here, tôi đã đưa ra

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

Bởi vì, như đã đề cập trong liên kết, tổng nhu cầu một giá trị khởi đầu.

Các vấn đề liên quan