Soru Bir koleksiyondaki tüm sayıların toplamı.


Bir koleksiyondaki tüm sayıların toplamını oluşturmanın en iyi yolu nedir?

Denedim:

sum(Counter([1,2,3,4,5,1,2,1,6])) 

ama bu 9 yerine 21 veriyor?


25
2017-09-03 13:24


Menşei




Cevaplar:


Girdiğiniz kod, anahtarları (yani listedeki benzersiz değerleri) ekler: 1+2+3+4+5+6=21).

Sayıları eklemek için şunu kullanın:

In [4]: sum(Counter([1,2,3,4,5,1,2,1,6]).values())
Out[4]: 9

Bu deyim belgeleme"Ortak desenler" altında.


41
2017-09-03 13:25



Bu kalıbı bulabildiğim için +1 ve ilgimi çekebileceğim diğer yararlı modeller. - cjbarth


Değerleri topla:

sum(some_counter.values())

Demo:

>>> from collections import Counter
>>> c = Counter([1,2,3,4,5,1,2,1,6])
>>> sum(c.values())
9

11
2017-09-03 13:25





sum(Counter([1,2,3,4,5,1,2,1,6]).values())

0
2017-09-03 13:27