enumerate は range(len()) より約 1.45 倍遅い
`enumerate` のほうが `range(len(xs))` より約 1.5 倍速い(インデックス参照を減らせるため)。
結果
| 実行 | range(len()) | enumerate | 倍率 |
|---|---|---|---|
| 実行 1 | 5.353 | 7.862 | 0.68× |
| 実行 2 | 5.295 | 7.747 | 0.68× |
| 実行 3 | 5.533 | 7.678 | 0.72× |
3 回のばらつき: range(len()) CV 1.9% / enumerate CV 1.0% / 倍率 CV 2.6%
測った条件
10 万要素を、インデックスと値の両方を使いながら走査。
この数字が当てはまらない場面
逆順・飛ばしなど、インデックス制御が必要な場合は range が必要です。
再現コマンド
cd bench && python micro_py.py --out ../data/run.json --samples 21