Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python3.5+;中创建列表的浅层副本的最快方法是什么;?_Python_Python 3.x_Performance_Copy_Shallow Copy - Fatal编程技术网

在Python3.5+;中创建列表的浅层副本的最快方法是什么;?

在Python3.5+;中创建列表的浅层副本的最快方法是什么;?,python,python-3.x,performance,copy,shallow-copy,Python,Python 3.x,Performance,Copy,Shallow Copy,在Python3.5+中,有几种替代方法可以创建浅的列表副本。显而易见的是: some\u list.copy() 一些列表[:] list(一些列表) [*一些列表] 和其他人 哪种方法最快 注意: 虽然这个问题与“列表副本”有关,但它只涉及Python 3.5+中的性能。如果您需要回答“为什么需要Python中列表的副本?”或“Python中列表的浅拷贝和深拷贝有什么区别?”的问题,请阅读以下内容: 这个问题唯一合理的答案是比较它们的执行时间。由于这个问题涉及到Python 3.5+,我

在Python3.5+中,有几种替代方法可以创建浅的
列表副本。显而易见的是:

  • some\u list.copy()
  • 一些列表[:]
  • list(一些列表)
  • [*一些列表]
  • 和其他人
哪种方法最快

注意: 虽然这个问题与“列表副本”有关,但它只涉及Python 3.5+中的性能。如果您需要回答“为什么需要Python中列表的副本?”或“Python中列表的浅拷贝和深拷贝有什么区别?”的问题,请阅读以下内容:
这个问题唯一合理的答案是比较它们的执行时间。由于这个问题涉及到Python 3.5+,我记得在Python 3.5中,这个问题是被批准的,结果是
[*一些列表]
是在Python 3.5+中制作列表的浅层副本的最快方法,下面给出了度量。当然,制作副本的方法还有很多,但我将重点介绍以下方法:

  • some\u list.copy()
  • 一些列表[:]
  • list(一些列表)
  • [*一些列表]
  • 从副本导入副本;复制(一些列表)
请记住,这些时间是相对的,但趋势应该是相似的。 从下图可以看出,当
len(some_list)>=1000时,所有变量的行为大致相同:

但是在
len(some_list)<1000
我们有一个明显的赢家,它是
[*some_list]


这些测量是用Python 3.6.3和Windows 7执行的。

您应该对各种选项计时,然后查看。这些线会聚在一起,因此正确的答案似乎是“一切都一样”。除了非常小的列表,在这种情况下,答案是“谁在乎”;)@zvone的人有很多很小的名单,这是谁在乎的:-)(也许)。另一个选项是
some_list*1
,我发现这是值得注意的,因为它在我自己的测试中是第二快的(只被
[*some_list]
击败)而且很短。除非副本是其他循环的内部循环,否则重复执行循环。。