Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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
在python中复制列表时使用list()的复杂性是什么?_Python_Python 3.x_List_Time Complexity_Big O - Fatal编程技术网

在python中复制列表时使用list()的复杂性是什么?

在python中复制列表时使用list()的复杂性是什么?,python,python-3.x,list,time-complexity,big-o,Python,Python 3.x,List,Time Complexity,Big O,我有一份清单: a = [1,2,3,4] 现在我想把列表a复制成列表b 我想知道在对可变数据类型执行复制操作时复制列表a的步骤的复杂性: b = list(a) a is b # False 它将整个数据复制到另一个内存位置,时间复杂度由列表的总大小定义,即 如果已按以下方式指定它: 那么时间复杂度就是O1 有关更多详细信息,请在对可变数据类型执行复制操作时查看: b = list(a) a is b # False 它将整个数据复制到另一个内存位置,时间复杂度由列表的总大小定义,即 如

我有一份清单:

a = [1,2,3,4]
现在我想把列表a复制成列表b


我想知道在对可变数据类型执行复制操作时复制列表a的步骤的复杂性:

b = list(a)
a is b # False
它将整个数据复制到另一个内存位置,时间复杂度由列表的总大小定义,即

如果已按以下方式指定它:

那么时间复杂度就是O1


有关更多详细信息,请在对可变数据类型执行复制操作时查看:

b = list(a)
a is b # False
它将整个数据复制到另一个内存位置,时间复杂度由列表的总大小定义,即

如果已按以下方式指定它:

那么时间复杂度就是O1

有关详细信息,请在复制列表时查看:

list.copy 列表[:] 列表 它遍历所有元素。因此,由列表大小定义的时间复杂度,即复制列表时的时间复杂度:

list.copy 列表[:] 列表
它遍历所有元素。因此,由列表大小定义的时间复杂度,即在浅拷贝、切片上 因为Python遍历列表中的所有元素,并将对象引用的副本添加到新的列表中

浅复制

list.copy

列表切片

列表[:]

使用内置的列表构造函数列表

名单

使用列表理解


[e代表lst中的e]

浅层复制、切片开始 因为Python遍历列表中的所有元素,并将对象引用的副本添加到新的列表中

浅复制

list.copy

列表切片

列表[:]

使用内置的列表构造函数列表

名单

使用列表理解


[e代表lst中的e]

当然是O1。必须有一个可变的大小或一些类似的参数,才能让类似On的任何东西有意义。@jasonharper我不知道你是在开玩笑还是只是吹毛求疵,但很明显,n是列表的长度。将列表参数传递给列表构造函数与调用基本相同。copy:Nitpicking解释道,它是O1,因为lena==4由特定的问题语句保证。大多数人不会反驳tuple-4-copy或destructure-assign-4具有恒定的复制时间。然而,对于复制任意列表来说,这不是一个通用/有用的答案。当然,这是O1。必须有一个可变的大小或一些类似的参数,才能让类似On的任何东西有意义。@jasonharper我不知道你是在开玩笑还是只是吹毛求疵,但很明显,n是列表的长度。将列表参数传递给列表构造函数与调用基本相同。copy:Nitpicking解释道,它是O1,因为lena==4由特定的问题语句保证。大多数人不会反驳tuple-4-copy或destructure-assign-4具有恒定的复制时间。然而,对于复制任意列表来说,这不是一个通用/有用的答案;a是原始的,因此将别名命名为b将是b=a.hehe。谢谢:@ShadowRangera=b不是复制品,它也是别名,你把它倒过来了;a是原始的,因此将别名命名为b将是b=a.hehe。谢谢:@ShadowRanger
b = a
a is b # True