为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕姐4208626 2023-11-09 22:20:35
我有一个清单:a = [1,2,3,4]现在我想将列表复制a为列表bb = list(a)我想知道复制列表的步骤的复杂性a。
查看完整描述

3 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

复制列表时:

  • list.copy()

  • list[:]

  • list()

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


查看完整回答
反对 回复 2023-11-09
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

当您对可变数据类型执行复制操作时:


b = list(a)

a is b # False

它将整个数据复制到另一个内存位置,时间复杂度由列表的总大小定义,即O(n)


如果您已将其分配如下(别名):


b = a

a is b # True

那么时间复杂度就是O(1)

查看完整回答
反对 回复 2023-11-09
?
皈依舞

TA贡献1851条经验 获得超3个赞

浅复制、切片需要 O(n) 因为 Python 会遍历列表中的所有元素并将对象引用的副本添加到新列表(按引用复制)。

浅复制

list.copy()

列表切片

list[:]

使用内置列表构造函数 list(...)

list()

使用列表理解

[e for e in lst]


查看完整回答
反对 回复 2023-11-09
  • 3 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信