计算迭代器的产量数量?

时间:2016-12-27 04:58:59

标签: python python-3.x iterator

可以考虑功能

def f(iterator):
    count = 0
    for _ in iterator:
        count += 1
    return count

def g(iterator):
    return len(tuple(iterator))

相信他们可以区别的唯一方法是g可能会耗尽内存而f却没有。
假设我是对的:

  

是否更快和/或更好(大致,更短而不成为代码高尔夫)   在使用比f(iterator)占用更少的内存时获取tuple(iterator)的方法,   最好是内联而不是函数?

(如果f存在其他方式,g存在差异,那么我相信 fg更有可能正确定义我所追求的功能。 我已经查看了the itertools documentation page,但在那里看不到任何解决方案。)

1 个答案:

答案 0 :(得分:3)

您可以将$timestamp = strtotime($time1." +".$time2); $endTime = date("H:i:s", $timestamp); echo $endTime; 与生成器表达式一起使用,为迭代器中的每个项目生成1:

sum