Python ループで反復をスキップする

Hafiz Muhammad Zohaib 2023年6月21日
  1. try-except ステートメントを continue と共に使用して、Python ループの反復をスキップする
  2. continueif-else ステートメントを使用して Python ループの反復をスキップする
Python ループで反復をスキップする

この記事では、Python でループの特定の反復をスキップするさまざまな方法について説明します。

場合によっては、いくつかのタスクをスキップしながら、いくつかのタスクを繰り返し実行するという要件に対処しなければならないことがあります。 たとえば、ループを実行していて、例外をスローする可能性のある反復の部分をスキップしたい場合です。

try-except ステートメントを continue と共に使用して、Python ループの反復をスキップする

Python では、try-except ステートメントを使用して例外を簡単に処理できます。 ループの反復中にいくつかの例外が発生し、ループの実行が停止する可能性があると思われる場合は、このステートメントを使用できます。

List_A = [25, 30, 100, 600]
List_B = [5, 10, 0, 30]
Result = []
for i, dividend in enumerate(List_A):
    try:
        # perform the task
        Result.append(dividend / List_B[i])
    except:
        # handle the exceptions
        continue
print(Result)

上記のコードでは、2つのリストがあり、List_AList_B 要素ごとに分割したいと考えています。

Python では、数値をゼロで除算すると、ZeroDivisionError が発生します。 List_B には除数としてゼロが含まれているため、それによる除算はループ実行中にこのエラーを生成します。

このエラーを回避するために、except ブロックを使用します。 エラーが発生すると例外が発生し、except ブロックが実行されます。

continue ステートメントは、現在のループ反復で後続のステートメントをすべて無視し、ループの先頭に戻ります。 これは、ループの繰り返しをスキップする方法です。

上記のコードは、次の出力を生成します。

[5.0, 3.0, 20.0]

continueif-else ステートメントを使用して Python ループの反復をスキップする

if-else ステートメントと continue を使用して同じタスクを実行できます。

List_A = [25, 30, 100, 600]
List_B = [5, 10, 0, 30]
Result = []
for i, dividend in enumerate(List_A):
    if List_B[i] != 0:
        Result.append(dividend / List_B[i])
    else:
        continue
print(Result)

これは簡単なコードです。 このソリューションと try-except ソリューションの違いは、前者の実装では、ループの実行が停止される可能性がある条件が既にわかっていることです。

したがって、この条件を明示的にコーディングして、その反復をスキップできます。

出力:

[5.0, 3.0, 20.0]

上記の実装の結果として、ループを停止することなく、エラー/例外が発生する可能性があるループ反復をスキップできます。

関連記事 - Python Loop