Python | break を使ったコード vs 使わないコードのパフォーマンス比較

Python
スポンサーリンク

大きなリストを検索する場合、break を使うかどうかで 処理時間 に差が出ます。


1. break を使った場合(早期終了)

import time

data = list(range(10_000_000))  # 1000万件のリスト
target = 999_999

start = time.time()

for n in data:
    if n == target:
        found = True
        break

end = time.time()
print("breakあり:", end - start, "秒")
Python
  • 動作: 目的の値を見つけた瞬間にループ終了。
  • 結果: 1000万件のうち 100万件目で終了 → 残り900万件をスキップできる。
  • 効率: O(n) だが「平均的には途中で終わる」ので高速。

2. break を使わない場合(最後まで回す)

import time

data = list(range(10_000_000))
target = 999_999

start = time.time()

found = False
for n in data:
    if n == target:
        found = True
        # breakなし → 最後まで回る

end = time.time()
print("breakなし:", end - start, "秒")
Python
  • 動作: 見つけてもループは最後まで続く。
  • 結果: 1000万件すべてをチェック。
  • 効率: 常に O(n) の最大コスト。

3. 実際のパフォーマンス差(イメージ)

ケース探索対象終了タイミング処理時間の目安
break あり1000万件100万件目で終了約 0.1 秒
break なし1000万件最後まで回す約 1.0 秒

※ 実際の時間は環境によって変わりますが、10倍以上の差が出ることもあります。


4. まとめ

  • break を使う: 見つかったら即終了 → 無駄な処理を省ける。
  • 使わない: 常に最後まで回す → 大規模データでは非効率。
  • 結論: 「探索系の処理」では break を使う方が圧倒的に効率的。
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました