python融合list速度比较
list comprehension 快许多,大概是因为少了中间建立新list的步骤
横坐标数据规模,纵坐标秒
import timeit
import matplotlib.pyplot as plt
from tqdm import tqdm_notebook as tqdm
def s():
a = sum([li for li in l],[])
return a
def c():
a = [i for ii in l for i in ii]
return a
x = 13
ds = []
dc = []
for i in tqdm(range(x)):
l = [[0]*100 for ii in range(2**i)]
ds.append(timeit.timeit(s, number=10,globals=globals()))
dc.append(timeit.timeit(c, number=10,globals=globals()))
xx = [2**xi for xi in range(x)]
plt.plot(xx,[i/10 for i in ds],label='sum(lists,[])')
plt.plot(xx,[i/10 for i in dc],label='[i for list in lists

浙公网安备 33010602011771号