0
我一直在看collections.Counter。Collections.Counter計數時吃發電機嗎?
我使用以下(簡化)代碼:
choices = ['foo', 'bar']
def generator(n=100000000):
yield random.choice(choices)
counts = collections.Counter(generator())
現在我的問題,我在執行Counter
需要發電機作爲輸入。首先將生成器轉換爲列表會佔用太多內存空間。
所以我想知道collections.Counter
是否首先將數據轉換爲列表,然後'計數'或在計數時'吃'發生器。
如果它首先將數據轉換爲列表。我將如何最好地實施它,而不將它轉換爲列表。
據我所知'計數器'吃生成器和計數同時。 –
沒有'itertools.Counter'只有'collections.Counter' –
你是對的。我改變了它 –