猿问

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

我有一个清单:

a = [1,2,3,4]

现在我想将列表复制a为列表b

b = list(a)

我想知道复制列表的步骤的复杂性a


慕姐4208626
浏览 168回答 3
3回答

千巷猫影

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

慕桂英546537

当您对可变数据类型执行复制操作时:b = list(a)a is b # False它将整个数据复制到另一个内存位置,时间复杂度由列表的总大小定义,即O(n)如果您已将其分配如下(别名):b = aa is b # True那么时间复杂度就是O(1)

皈依舞

浅复制、切片需要 O(n) 因为 Python 会遍历列表中的所有元素并将对象引用的副本添加到新列表(按引用复制)。浅复制list.copy()列表切片list[:]使用内置列表构造函数 list(...)list()使用列表理解[e for e in lst]
随时随地看视频慕课网APP

相关分类

Python
我要回答