通常,迭代对象的大小是事先不知道的,迭代对象也不知道迭代将持续多长时间;但是,在某些情况下,知道可迭代对象的长度很有价值,例如,在创建数组时。例如,list(x for x in range(1000000))创建一个小大小的初始数组,在它满后复制它,并多次重复解释。当然,在这个例子中它并不那么重要,但是它解释了这一点。对于那些事先知道其长度的可迭代对象,是否有使用的协议?也就是说,是否有扩展而不是的协议?在语言特性上似乎没有这样的协议,是否有这样的协议供知名的第三方库使用?这一讨论与发电机有何关系?