使用yield实现range

用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左右

你可能感兴趣的:(使用yield实现range)