Счетчик для огромных коллекций на Python
В стандартной библиотеке есть класс Counter. Он отлично подходит, чтобы считать количество объектов разных типов. Но что делать, если объектов миллиарды, и счетчик просто не помещается в оперативную память?
Поможет bounter — это счетчик, который предоставляет схожий интерфейс, но внутри построен на вероятностных структурах данных. За счет этого он занимает в 30–250 раз меньше памяти, но может (слегка) привирать.
from bounter import bounter
counts = bounter(size_mb=128)
counts.update(["a", "b", "c", "a", "b"])
>>> counts.total()
5
>>> counts["a"]
2
Ноль зависимостей, питон 3.3+
Подписывайтесь на канал, чтобы не пропустить новые заметки 🚀