在python3.5+中,有几种方法可以用来生成一个list
的shallow副本。显而易见的是:
some_list.copy()
some_list[:]
list(some_list)
[*some_list]
- 还有其他。。。在
哪种方法最快?在
注意:
虽然这个问题与“列表副本”有关,但它只涉及Python3.5+中的性能。如果您需要一个关于“为什么需要Python中的列表副本”的答案?Python中列表的浅拷贝和深拷贝有什么区别?“阅读以下内容:
How to clone or copy a list?
Tags:
对这个问题唯一合理的答案是比较他们的执行时间。因为这个问题与Python3.5+有关,我会记得在Python3.5中,PEP 448 Additional Unpacking Generalizations是被批准的,并且结果表明
[*some_list]
是在Python3.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]
:这些测量是用python3.6.3,windows7执行的。在
相关问题 更多 >
编程相关推荐