Đây là mã tôi chạy:Tại sao là "sắp xếp()" chậm hơn so với "bản sao, sau đó .sort()" Python của
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)
và đây là kết quả:
0.00259663215837
0.00207390190177
Tôi muốn biết tại sao sử dụng .sort() luôn nhanh hơn sắp xếp() mặc dù cả hai đều đang sao chép danh sách?
Lưu ý: Tôi đang chạy Python 2.7 trên một i5 2.53GHz với Win7
Đề nghị bạn cố gắng này nhiều lần liên tiếp với nhiều danh sách lớn hơn cho sự khắt khe –
@AndrewGorcester Tôi mua đề xuất danh sách lớn hơn, nhưng tại sao lại nhiều lần hơn? 1000 có đủ không cho tính chính xác thống kê hợp lý không? – robert
Xin lỗi, tôi không quen với mô-đun timeit và vừa nhận ra rằng nó đã được lặp lại 1000 lần cùng một lúc mà bạn trả lời. Đó sẽ là rất nhiều sự lặp lại. –