我写了两个具有相同功能的函数f和g
def f(l, count):
if count > 1:
for i in f(l, count-1):
yield i + 1
else:
yield from l
for i in f(range(100000),900):
pass
print('f')
Run Code Online (Sandbox Code Playgroud)
和
def g(l, count):
if count > 1:
tmp = []
for i in g(l, count-1):
tmp.append(i+1)
return tmp
else:
return l
for i in g(range(100000),900):
pass
print('f')
Run Code Online (Sandbox Code Playgroud)
而我认为f shuold会更快但是在运行时g会更快
时间为g
real 0m5.977s
user 0m5.956s
sys 0m0.020s
Run Code Online (Sandbox Code Playgroud)
f的时间
real 0m7.389s
user 0m7.376s
sys 0m0.012s
Run Code Online (Sandbox Code Playgroud)