我有一个清单:a = [1,2,3,4]现在我想将列表复制a为列表bb = list(a)我想知道复制列表的步骤的复杂性a。
3 回答
慕桂英546537
TA贡献1848条经验 获得超10个赞
当您对可变数据类型执行复制操作时:
b = list(a)
a is b # False
它将整个数据复制到另一个内存位置,时间复杂度由列表的总大小定义,即O(n)
如果您已将其分配如下(别名):
b = a
a is b # True
那么时间复杂度就是O(1)
皈依舞
TA贡献1851条经验 获得超3个赞
浅复制、切片需要 O(n) 因为 Python 会遍历列表中的所有元素并将对象引用的副本添加到新列表(按引用复制)。
浅复制
list.copy()
列表切片
list[:]
使用内置列表构造函数 list(...)
list()
使用列表理解
[e for e in lst]
添加回答
举报
0/150
提交
取消