Просто используйте заказной счетчик. Если вы счастливы импортировать OrderedDict
, нет причин, по моему мнению, вам следует избегать Counter
.
from collections import OrderedDict, Counter
class OrderedCounter(Counter, OrderedDict):
pass
s = [3, 1, 3, 1, 2, 3, 4]
d = OrderedCounter(s)
print(d)
OrderedCounter({3: 3, 1: 2, 2: 1, 4: 1})
Заметьте, в Python 3.7+ вы можете просто использовать Counter
, так как словари упорядочены по вставке.