相关疑难解决方法(0)

为什么发电机更快?

我知道生成器比迭代器更快.我也明白可以使用for循环语法实现生成器.例如:

    import time 


startT = time.time()


def myGen(n):
    for i in range(n):
        yield x         


def myIter(n):
    for i in range(n):
        pass

def main():
    n=100
    startT=time.time()
    myIter(n)
    print 'myIter took ', time.time() - startT

    startT=time.time()
    myGen(n)
    print 'myGen(n) took ', time.time() - startT
Run Code Online (Sandbox Code Playgroud)

这只是结果的一个例子:

myIter took 0.09234782
myGen(n) took 0.017847266
Run Code Online (Sandbox Code Playgroud)

因为这使用for循环语法,所以我不明白它是如何比迭代器更快.这个生成器使用迭代器,因为"for"循环是使用迭代器实现的.如果你计算时间,发电机一直更快.当生成器使用迭代器时,为什么会这样?

谢谢.

python iterator generator

2
推荐指数
1
解决办法
1540
查看次数

标签 统计

generator ×1

iterator ×1

python ×1