Python:在不构建列表的情况下运行迭代器值的计数

时间:2018-09-18 13:39:15

标签: python iterator

我想计算一个迭代器的唯一值,但不必先建立一个列表。使用列表,我将例如:

from collections import Counter
from itertools import combinations

my_counts = Counter([sum(x) for x in combinations([1,2,3,4,5])],2)

但是在上面,列出了一个列表,然后应用了Counter。但是有没有办法保持运行状态,从而使整个列表不需要存储在内存中?

1 个答案:

答案 0 :(得分:0)

只需为DATE_AT_8AM_UTC -------------------------------- 29-NOV-18 08.00.00.000000 AM UTC 26-APR-18 08.00.00.000000 AM UTC 26-JUN-18 08.00.00.000000 AM UTC 生成一个生成器表达式而不是Counter

list

或更短(但my_counts = Counter(sum(x) for x in combinations([1,2,3,4,5], 2)) 仅在Python3中返回生成器):

map

这不会首先在内存中建立一个列表。