从interactivepython.org获取此片段:
def test1(): # concat
l = []
for i in range(1000):
l = l + [i]
def test2(): # append
l = []
for i in range(1000):
l.append(i)
Run Code Online (Sandbox Code Playgroud)
concat 6.54352807999 milliseconds
append 0.306292057037 milliseconds
Run Code Online (Sandbox Code Playgroud)
底部块是运行时间.
它表示连接是O(k),其中k是"连接列表的长度".我不确定这是否意味着您要添加的列表(原始),或者您要添加的列表.但在这两个循环中,您似乎只是每次迭代执行一步.那么为什么追加这么快呢?