frh*_*yme 1 python performance list-comprehension generator
最近我有问题,哪一个是其中最跑得最快的家伙iterator,list comprehension,iter(list comprehension)和generator.然后制作如下的简单代码.
n = 1000000
iter_a = iter(range(n))
list_comp_a = [i for i in range(n)]
iter_list_comp_a = iter([i for i in range(n)])
gene_a = (i for i in range(n))
import time
import numpy as np
for xs in [iter_a, list_comp_a, iter_list_comp_a, gene_a]:
start = time.time()
np.sum(xs)
end = time.time()
print((end-start)*100)
Run Code Online (Sandbox Code Playgroud)
结果如下.
0.04439353942871094 # iterator
9.257078170776367 # list_comprehension
0.006318092346191406 # iterator of list_comprehension
7.491207122802734 # generator
Run Code Online (Sandbox Code Playgroud)
发电机比其他东西慢.我不知道什么时候有用?
Kis*_*war 11
generators不要一次性将所有元素存储在内存中.他们yield一次一个,这种行为使他们的记忆效率.因此,当内存是约束时,您可以使用它们.
| 归档时间: |
|
| 查看次数: |
2024 次 |
| 最近记录: |