god*_*ygo 1 python performance copy shallow-copy python-3.x
这是在Python 3.5+中制作浅层副本的几种替代方法list.显而易见的是:
some_list.copy() some_list[:] list(some_list) [*some_list] 哪种方法最快?
注意:虽然此问题与"列表副本"有关,但它仅涉及Python 3.5+中的性能.如果您需要回答" 为什么需要Python中的列表副本? "或" Python中列表的浅层和深层复制有什么区别? "的问题,请阅读以下内容: 如何克隆或复制清单?
这个问题唯一合理的答案是比较他们的执行时间.由于这个问题涉及Python 3.5+,我会记得在Python 3.5中PEP 448 - 附加解包概括被批准,结果证明这[*some_list]是在Python 3.5+中制作列表的浅表副本的最快方法,测量结果是如下所示.当然还有很多方法可以制作副本,但我将重点关注以下方面:
some_list.copy() some_list[:]list(some_list)[*some_list]from copy import copy; copy(some_list) 请记住,这些时间是彼此相关的,但趋势应该是相似的.从下图可以看出,当以下情况时,所有变体的行为大致相同len(some_list) >= 1000:

但是,len(some_list) < 1000我们有一个明显的赢家,它是[*some_list]:
使用Python 3.6.3,Windows 7进行测量.
| 归档时间: |
|
| 查看次数: |
1119 次 |
| 最近记录: |