Nov-08-2019, 03:17 PM
(Nov-08-2019, 08:18 AM)perfringo Wrote: For counting hashable objects there is built-in collections.Counter.
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