python - python 复制平面列表的哪种方法更快:理解、切片或copy.copy?
问题描述
假设我想在 python 中制作一个列表的浅表副本。哪种方法最快?
我能想到
copy.copy(l)
l[:]
[x for x in l]
list(l)
解决方案
在 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)
所以它们都是一样的,除了列表理解要慢得多。
推荐阅读
- function - 在被不断更新的程序 Google 表格删除之前远程记录单元格值的脚本
- html - 在 godaddy 上托管的网站有时会停止加载
- ios - 在我的应用中控制其他应用的音乐
- python - RuntimeError:对象没有属性 nms:
- git - 修复非顺序提交
- angular8 - 无法从 Angular 8 下载 excel 文件,服务器端代码是 .net core webapi 3.1
- jquery - 我需要删除类等于 attr 输入的“li”
- regex - 每次{}之间的数据不匹配某些数据时,如何在一个组中匹配某些数据以及{}之间的正则表达式和颤振?
- c++ - “模拟”部分功能模板专业化?
- google-bigquery - 带有参数的 Google Data Studio 和 BigQuery 自定义 SQL