Python: running tally of iterator values without building a list
本问题已经有最佳答案,请猛点这里访问。
我想计算一个迭代器的唯一值,但不需要先构建一个列表。使用列表,我可以这样做,例如:
1 2 3 4 | from collections import Counter from itertools import combinations my_counts = Counter([sum(x) for x in combinations([1,2,3,4,5])],2) |
但上面列出了一个清单,然后应用了
只需向
1 | my_counts = Counter(sum(x) for x in combinations([1,2,3,4,5], 2)) |
或者更短(但是
1 | my_counts = Counter(map(sum, combinations([1,2,3,4,5], 2))) |
号
这不会首先在内存中构建列表。