【发布时间】:2016-06-08 15:12:51
【问题描述】:
在创建列表时,我认为尽可能推荐理解,因为它是最快的。但是你瞧。
In [1]: %timeit -n1000 [0]*1000000
1000 loops, best of 3: 2.3 ms per loop
In [2]: %timeit -n1000 [0 for _ in range(1000000)]
1000 loops, best of 3: 27.1 ms per loop
In [3]: a = np.zeros(1000000, dtype=int)
In [4]: %timeit -n1000 a.tolist()
1000 loops, best of 3: 7.93 ms per loop
即使numpy.ndarray.tolist 也跟不上乘法。这是为什么呢?
【问题讨论】:
-
#2 实际上运行了一个 python 循环,而 #1 完全解释为没有任何 python 循环。
标签: python performance python-3.x