ループの速度
もちろん、要素の検索には 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