计算可迭代对象中元素的数量

gon*_*opp 5 python iterator iterable count

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

现在,我只是在做sum(1 for x in iterable)。我本来希望能在里面找到什么itertools,但似乎什么也没有。

Mar*_*ers 5

sum(1 for x in iterable) 最好的方法。并非所有事物都需要专用itertools功能。:-) 我注意到,您声称不是骗子的帖子上得票最高的答案也建议您使用这个。

当然,为了以防万一,看看总是很有价值的itertools,如果你这样做,不要忘记检查食谱部分;你会发现quantify()配方做了几乎相同的事情,但有一个谓词来过滤可迭代:

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