一、实验:
lt = range(10000)
te = tuple(lt)
st = set(lt)
1、遍历list:
%%timeit
for i in lt:
a = i
结果:399 µs ± 11.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
2、遍历tuple:
%%timeit
for i in te:
a = i
结果:231 µs ± 6.34 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
3、遍历set:
%%timeit
for i in st:
a = i
结果:274 µs ± 7.47 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
4、遍历数量从10000–>100000
5、遍历数量等于500
6、遍历数量等于100
二、结论:
遍历数量较大(500)的情况下:
速度:元组(tuple) > 集合(set) > 列表(list)
遍历数量较小(100)的情况下:
速度:元组(tuple) > 列表(list) > 集合(set)
三、本质原因:
tuple是不可改变的,不仅遍历速度更快、而且内存更小