Python 计算iterable中的元素数

Python 计算iterable中的元素数,python,count,iterator,iterable,Python,Count,Iterator,Iterable,在不将元素存储在内存中的情况下,计算iterable(通过迭代)中元素数的最佳方法是什么 现在,我正在做求和(iterable中x的1)。我希望在itertools中找到一些东西,但似乎什么都没有。sum(iterable中x的1)是最好的方法。并非所有内容都需要专用的itertools功能。:-)我注意到,投票最多的答案也建议您使用此选项 当然,查看itertools总是很有价值的,以防万一,如果您这样做了,不要忘了检查;您将找到quantify()配方,该配方的作用几乎相同,但带有一个谓词来

在不将元素存储在内存中的情况下,计算iterable(通过迭代)中元素数的最佳方法是什么

现在,我正在做
求和(iterable中x的1)
。我希望在itertools中找到一些东西,但似乎什么都没有。

sum(iterable中x的1)
是最好的方法。并非所有内容都需要专用的
itertools
功能。:-)我注意到,投票最多的答案也建议您使用此选项

当然,查看
itertools
总是很有价值的,以防万一,如果您这样做了,不要忘了检查;您将找到
quantify()
配方,该配方的作用几乎相同,但带有一个谓词来过滤iterable:

def quantify(iterable, pred=bool):
    "Count how many times the predicate is true"
    return sum(imap(pred, iterable))

依我看,此功能应包含在itertools中,但不包括在内

是一个包含
ilen
的软件包,但对于您的情况来说可能有点重。当我遇到这种情况时,我只是将您常用的解决方法定义为
ilen

def ilen(iterable):
    return sum(1 for _ in iterable)

作为旁注,多年前就有人要求提供此功能:,但不幸的是,讨论到此为止,我认为这个问题经常出现,它应该被添加到python中。我认为将
itertools
提供的基本构建块打包成一个函数没有多大价值。因为
more itertools
中的
ilen()
函数正是您在这里的答案中包含的功能。@martijnpiers认为如果经常使用,它可能会很有用,因为
sum
变通方法对我来说并不干净。
more itertools
似乎包含了很多有用的方法,我要是早点知道就好了@simonzack注意到,当你使用
ilen
,我想这就是Martijn Pieters所指的<代码>伊伦让你的意图更加清晰。