Nov-08-2019, 08:18 AM
For counting hashable objects there is built-in collections.Counter.
This enables counting and representing results in different ways:
This enables counting and representing results in different ways:
>>> from collections import Counter >>> nums = [1, 2, 3, 1, 2, 5, 6, 7, 7] >>> counts = Counter(nums) >>> counts Counter({1: 2, 2: 2, 7: 2, 3: 1, 5: 1, 6: 1})Print out counted items with their occurrance (sorted):
>>> print(*(f'{num}:{count}' for num, count in counts.most_common()), sep='\n') 1:2 2:2 7:2 3:1 5:1 6:1How many values were counted:
>>> sum(counts.values()) 9How many different objects were counted:
>>> len(counts) 6All values in sorted order:
>>> print(*counts.elements()) 1 1 2 2 3 5 6 7 7 >>> list(counts.elements()) [1, 1, 2, 2, 3, 5, 6, 7, 7]It doesn't throw an error if asked for object (key) not present, it just 'nicely' says that count is zero:
>>> counts[1] 2 >>> counts[100] 0
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy
Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.