개체 목록의 속성 합계 / 평균


82

C속성 이있는 클래스가 있다고 가정 해 봅시다 a.

Python a의 목록에서 합계를 얻는 가장 좋은 방법은 무엇입니까 C?


다음 코드를 시도했지만 올바른 방법이 아니라는 것을 알고 있습니다.

for c in c_list:
    total += c.a

답변:


182

용도 발전기 표현 :

sum(c.a for c in c_list)

나는 단순함을 좋아하지만, cA가 float 인 약 10 개의 요소에 대해 (c1.A + c2.A + c3.A)만큼 다시 절반이 걸리는 것 같습니다.
jcomeau_ictx

9

합계 이외의 측정 값 (예 : 평균 / 표준 편차)을 찾고 있다면 NumPy를 사용하여 다음을 수행 할 수 있습니다.

mean = np.mean([c.a for c in c_list])
sd = np.std([c.a for c in c_list])

4

비슷한 작업이 있었지만 내 속성으로 기간을 합산하는 것이 포함되었습니다 c.a. 이것을 여기 에서 묻는 다른 질문과 결합 하여

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

링크에서 언급했듯이 sum시작 값이 필요하기 때문입니다.


0

내장 statistics모듈 사용 :

import statistics

statistics.mean((o.val for o in my_objs))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.