在 Python 中获取迭代器中的元素数量

问题描述

不,这是不可能的。

例子:

import random

def gen(n):
    for i in xrange(n):
        if random.randint(0, 1) == 0:
            yield i

iterator = gen(10)

iterator在您遍历它之前,长度是未知的。

解决方法

有没有一种有效的方法可以知道 Python 中的迭代器中有多少元素,一般来说,无需遍历每个元素并进行计数?