from collections import Counter
from itertools import groupby
from timeit import timeit
ar = list(range(10000))
print(timeit('Counter(ar)', number=1, globals=globals()))
print(timeit('{val: ar.count(val) for val in ar}', number=1, globals=globals()))
print(timeit('{val: ar.count(val) for val in set(ar)}', number=1, globals=globals()))
print(timeit('{val: sum(1 for _ in group) for val, group in groupby(sorted(ar))}',
number=1, globals=globals()))
ZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgQ291bnRlcgpmcm9tIGl0ZXJ0b29scyBpbXBvcnQgZ3JvdXBieQpmcm9tIHRpbWVpdCBpbXBvcnQgdGltZWl0CgphciA9IGxpc3QocmFuZ2UoMTAwMDApKQoKcHJpbnQodGltZWl0KCdDb3VudGVyKGFyKScsIG51bWJlcj0xLCBnbG9iYWxzPWdsb2JhbHMoKSkpCnByaW50KHRpbWVpdCgne3ZhbDogYXIuY291bnQodmFsKSBmb3IgdmFsIGluIGFyfScsIG51bWJlcj0xLCBnbG9iYWxzPWdsb2JhbHMoKSkpCnByaW50KHRpbWVpdCgne3ZhbDogYXIuY291bnQodmFsKSBmb3IgdmFsIGluIHNldChhcil9JywgbnVtYmVyPTEsIGdsb2JhbHM9Z2xvYmFscygpKSkKcHJpbnQodGltZWl0KCd7dmFsOiBzdW0oMSBmb3IgXyBpbiBncm91cCkgZm9yIHZhbCwgZ3JvdXAgaW4gZ3JvdXBieShzb3J0ZWQoYXIpKX0nLAogICAgICAgICAgICAgbnVtYmVyPTEsIGdsb2JhbHM9Z2xvYmFscygpKSk=