1. 程式人生 > >python性能分析——insert()

python性能分析——insert()

col 移動 nbsp 足夠 一個 鏈表 空間不夠 增加 class

我們在list中插入數據時,經常使用這兩個函數:

append():在列表的末尾增加一個數據

insert():在某個特定位置前加一個數據

Python內的list實現是通過數組實現的,而不是鏈表的形式,所以每當執行insert()操作時,都要將插入位置的元素向後移動才能在相應的位置插入元素,執行append()操作時,如果分配的空間還足夠大的話那麽就可以直接插到最後,如果空間不夠的話就需要將已有的數據復制到一片更大的空間後再插入新元素,insert()空間不夠的話也是同樣

所以,在使用insert()時,要特別註意性能問題,如:

例1:

a = []
for i in range(n):
    a.insert(0,
s)

例2:

a = []
for i in range(n):
    a.insert(i,s)

一字之差,例1的時間復雜度為O(n^2),例2為O(n)

python性能分析——insert()