3 回答
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
復(fù)制列表時(shí):
list.copy()list[:]list()
它遍歷所有元素。所以時(shí)間復(fù)雜度由列表的大小定義,即O(n)
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊
當(dāng)您對(duì)可變數(shù)據(jù)類(lèi)型執(zhí)行復(fù)制操作時(shí):
b = list(a)
a is b # False
它將整個(gè)數(shù)據(jù)復(fù)制到另一個(gè)內(nèi)存位置,時(shí)間復(fù)雜度由列表的總大小定義,即O(n)
如果您已將其分配如下(別名):
b = a
a is b # True
那么時(shí)間復(fù)雜度就是O(1)
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊
淺復(fù)制、切片需要 O(n) 因?yàn)?Python 會(huì)遍歷列表中的所有元素并將對(duì)象引用的副本添加到新列表(按引用復(fù)制)。
淺復(fù)制
list.copy()
列表切片
list[:]
使用內(nèi)置列表構(gòu)造函數(shù) list(...)
list()
使用列表理解
[e for e in lst]
添加回答
舉報(bào)
