迴圈的速度
當然,set 比較適合用來搜尋元素。它是以雜湊為基礎,所以大多數時候你可以期待時間複雜度接近常數。不過,若要逐一走訪(iterate)物件裡的所有元素呢?讓我們用 pytest 與 pytest-benchmark 比較在 list 與 set 上進行迴圈走訪的速度。pytest 套件已經匯入。
本練習屬於課程
Python 測試入門
練習說明
- 在所有以
iterate_開頭的函式前加上@benchmark修飾器。 - 完成
iterate_list與iterate_set中的迴圈。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
def test_list(benchmark):
# Add decorator here
@____
def iterate_list():
# Complete the loop here
____ in [i for i in range(1000)]:
pass
def test_set(benchmark):
# Add decorator here
____
def iterate_set():
# Complete the loop here
____ in {i for i in range(1000)}:
pass