哪种方法更适合计算迭代器的长度?

Aet*_*tos 1 python iterator python-3.x

len(list(iterator))和 和有sum(1 for _ in iterator)什么区别?随后,哪个是用于计算迭代器长度的最佳方法?

che*_*ner 5

第一个使用 O(n) 空间,因为它必须构建列表。第二个使用 O(1) 空间,因为一旦更新了运行总数,它就不必记住元素。

两者都不是非常有用,因为您已经丢弃了原始迭代器中的每个元素而没有查看它们中的任何一个。你留下了迭代多久。假设你同意,O(1) 空间比 O(n) 好。