在列表的每个元素后插入1,用于构造ssdb参数:
import time
a = list(range(100000))
length = len(a)
def method1():
time1 = time.time()
b = [1] * length * 2
for index in range(length):
b[index * 2] = a[index]
time2 = time.time()
print('按下标赋值:', time2 - time1)
def method2():
time1 = time.time()
for index in range(length, 0, -1):
a.insert(index, 1)
time2 = time.time()
print('从后往前插入元素:', time2 - time1)
if __name__ == '__main__':
method1()
method2()
运行结果:
按下标赋值: 0.00954747200012207
从后往前插入元素: 3.543287754058838
因为python的列表是顺序表,插入需移动所有后面的数据,所以直接按下标更新快得多。