我测试了两种不同的方法来反转 python 中的列表。
import timeit
value = [i for i in range(100)]
def rev1():
v = []
for i in value:
v.append(i)
v.reverse()
def rev2():
v = []
for i in value:
v.insert(0, i)
print timeit.timeit(rev1)
print timeit.timeit(rev2)
有趣的是,将值插入第一个元素的第二种方法比第一种方法慢得多。
20.4851300716
73.5116429329
为什么是这样?在操作方面,向头部插入一个元素似乎并没有那么昂贵。