这是我跑的代码:为什么是Python的 “排序()” 比慢 “副本,那么的.sort()”
import timeit
print timeit.Timer('''a = sorted(x)''', '''x = [(2, 'bla'), (4, 'boo'), (3, 4), (1, 2) , (0, 1), (4, 3), (2, 1) , (0, 0)]''').timeit(number = 1000)
print timeit.Timer('''a=x[:];a.sort()''', '''x = [(2, 'bla'), (4, 'boo'), (3, 4), (1, 2) , (0, 1), (4, 3), (2, 1) , (0, 0)]''').timeit(number = 1000)
和这里的结果:
0.00259663215837
0.00207390190177
我想知道为什么使用.sort()始终比sorted()快,即使它们都是复制列表?
注:我上的2.53GHz的酷睿i5运行的Python 2.7使用Win7的
推荐你试试这个连续多次与更大的名单严谨 – 2012-07-18 18:08:08
@AndrewGorcester我买了更大的列表建议,但为什么更多次?对于合理的统计准确度,1000是不够的? – robert 2012-07-18 18:09:26
对不起,我不熟悉timeit模块,刚刚意识到它在您回答的同时重复了1000次。这应该是很多重复。 – 2012-07-18 18:10:30