我有一個清單:a = [1,2,3,4]現(xiàn)在我想將列表復制a為列表bb = list(a)我想知道復制列表的步驟的復雜性a。
3 回答

慕桂英546537
TA貢獻1848條經(jīng)驗 獲得超10個贊
當您對可變數(shù)據(jù)類型執(zhí)行復制操作時:
b = list(a)
a is b # False
它將整個數(shù)據(jù)復制到另一個內(nèi)存位置,時間復雜度由列表的總大小定義,即O(n)
如果您已將其分配如下(別名):
b = a
a is b # True
那么時間復雜度就是O(1)

皈依舞
TA貢獻1851條經(jīng)驗 獲得超3個贊
淺復制、切片需要 O(n) 因為 Python 會遍歷列表中的所有元素并將對象引用的副本添加到新列表(按引用復制)。
淺復制
list.copy()
列表切片
list[:]
使用內(nèi)置列表構(gòu)造函數(shù) list(...)
list()
使用列表理解
[e for e in lst]
添加回答
舉報
0/150
提交
取消