在Python3.5+中制作列表的浅拷贝最快的方法是什么?

2024-04-25 14:35:03 发布

您现在位置:Python中文网/ 问答频道 /正文

在python3.5+中,有几种方法可以用来生成一个listshallow副本。显而易见的是:

  • some_list.copy()
  • some_list[:]
  • list(some_list)
  • [*some_list]
  • 还有其他。。。在

哪种方法最快?在

注意: 虽然这个问题与“列表副本”有关,但它只涉及Python3.5+中的性能。如果您需要一个关于“为什么需要Python中的列表副本”的答案?Python中列表的浅拷贝和深拷贝有什么区别?“阅读以下内容: How to clone or copy a list?


Tags: orto方法答案列表clone副本some
1条回答
网友
1楼 · 发布于 2024-04-25 14:35:03

对这个问题唯一合理的答案是比较他们的执行时间。因为这个问题与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时,所有变体的行为大致相同: enter image description here

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

这些测量是用python3.6.3,windows7执行的。在

相关问题 更多 >