2015-09-10 16 views
5

collections modülünden bir sayacım var. Tüm sayıları toplamanın en iyi yolu nedir?Python'daki bir sayacın tüm değerlerini topla

Örneğin, ben var:

my_counter = Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1}) 

ve 7 döndürülen değeri elde etmek istiyorum. Anlayabildiğim kadarıyla, sum işlevi, birden fazla sayaç eklemeyi amaçlıyor. Böyle

+0

sen olsaydı sayacın kaynağı (ör. 'my_counter = Sayaç (kaynak)'), sadece '' lı (kaynak) yapabilirsin ' – acushner

cevap

10

şey,

sum(my_counter.itervalues()) 

Eğer herhangi bir ara veri yapılarını oluşturmaz Bu şekilde tıpkı toplamı lazily değerlendirilir alacak.

0
c = Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1}) 
len(list(c.elements())) 
2
Sayaç ile çalışmak için
>>> from collections import Counter 
>>> sum(Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1}).values()) 
7 

Ortak desenler nesneleri: tüm sayıları

Kaynak toplamı (c.values ​​())
# toplam: https://docs.python.org/2/library/collections.html

+0

Python 3.6.1'de doğru şekilde çalışıyor! –

İlgili konular