使用yield实现range

2019-03-06  本文已影响0人  BigBigTang

用yield实现range

import time

def my_range(end, step=1, start=0):
    i = start
    while i < end:
        yield i
        i = i + step

start_time = time.time()
for i in my_range(10000000):
    pass
end_time = time.time()
print(end_time-start_time)

运行结果:

1.4571032524108887

循环一千万次耗时1.4s左右

如果改成range()仅耗时400ms左右

上一篇 下一篇

猜你喜欢

热点阅读