Я смотрел collections.Counter.Имеет ли коллекции. Каунтер есть генератор при подсчете?
Я использую следующий (упрощенный) код:
choices = ['foo', 'bar']
def generator(n=100000000):
yield random.choice(choices)
counts = collections.Counter(generator())
Теперь мой вопрос, в моей реализации Counter
принимает генератор в качестве входных данных. Для первого преобразования генератора в список потребуется слишком много места в памяти.
Итак, интересно, collections.Counter
сначала преобразует данные в список, а затем «подсчитывает» или «ест» генератор при подсчете.
Если он сначала преобразует данные в список. Как мне лучше всего реализовать его, не переведя его в список.
Насколько я знаю, 'Counter' ест генератор и подсчитывает между тем. –
Нет 'itertools.Counter' только' collections.Counter' –
Вы правы. я изменил это –