這是我跑的代碼:爲什麼是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