首页 > 解决方案 > python 复制平面列表的哪种方法更快:理解、切片或copy.copy?

问题描述

假设我想在 python 中制作一个列表的浅表副本。哪种方法最快?

我能想到

标签: python

解决方案


在 jupyter notebook、python 3.8 中测试

l = list(range(10000))
%%timeit
[x for x in l]
# 175 µs ± 5.23 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

%%timeit
copy.copy(l)
# 22.6 µs ± 365 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)

%%timeit
l[:]
# 22 µs ± 1.28 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

%%timeit
list(l)
# 21.6 µs ± 558 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)

所以它们都是一样的,除了列表理解要慢得多。


推荐阅读