如何通过迭代的方式计算可迭代对象中元素的数量,而不需要将元素存储在内存中?
目前,我只是使用sum(1 for x in iterable)
来实现。我希望能够在itertools
中找到一些相关的方法,但似乎没有。
如何通过迭代的方式计算可迭代对象中元素的数量,而不需要将元素存储在内存中?
目前,我只是使用sum(1 for x in iterable)
来实现。我希望能够在itertools
中找到一些相关的方法,但似乎没有。
我认为这个功能应该包含在itertools中,但事实上并没有。
more-itertools是一个包,其中包括ilen
,但可能对您的情况来说有点过重。当我遇到这种情况时,我只需定义常用的解决方法作为ilen
:
def ilen(iterable):
return sum(1 for _ in iterable)
itertools
提供的基本构建块并将如此简单的一行代码封装成函数并没有太大的价值。因为more-itertools
中的ilen()
函数恰好可以执行您在此处回答中包含的操作。 - Martijn Pieterssum
的解决方法对我来说并不那么干净。 - simonzackmore-itertools
似乎包含了很多有用的方法,我希望我早点知道它! - loopbackbeeilen
ж—¶пјҢдҪ жӯЈеңЁдҪҝз”Ёsum
зҡ„еҸҳйҖҡж–№жі•пјҢиҝҷжҳҜMartijn PietersжүҖжҢҮзҡ„пјҢжҲ‘жғігҖӮиҷҪ然еҰӮжӯӨпјҢilen
еҸҜд»Ҙжӣҙжё…жҘҡең°иЎЁиҫҫдҪ зҡ„ж„ҸеӣҫгҖӮ - loopbackbee