创建列表时,我认为只要可能,建议理解最快。但是,你看。为什么列表乘法这么快?
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循环。 – spectras