開発者ドキュメント

Python3でForループを構築する方法

コンピュータープログラミングでループを使用すると、同様のタスクを自動化して複数回繰り返すことができます。 このチュートリアルでは、Pythonのforループについて説明します。

forループは、ループカウンターまたはループ変数に基づいてコードの繰り返し実行を実装します。 これは、条件ベースの whileループとは異なり、forループは、ループに入る前に反復回数がわかっている場合に最も頻繁に使用されることを意味します。

前提条件

Python 3をインストールし、コンピューターまたはサーバーにプログラミング環境をセットアップする必要があります。 プログラミング環境をセットアップしていない場合は、ローカルプログラミング環境またはサーバー上のプログラミング環境のインストールおよびセットアップガイドを参照して、オペレーティングに適したものにすることができます。システム(Ubuntu、CentOS、Debianなど)

Forループ

Pythonでは、forループは次のように構成されます。

for [iterating variable] in [sequence]:
    [do something]

実行中のsomethingは、シーケンスが終了するまで実行されます。

情報:このチュートリアルのサンプルコードに従うには、python3コマンドを実行して、ローカルシステムでPythonインタラクティブシェルを開きます。 次に、>>>プロンプトの後に例を追加して、例をコピー、貼り付け、または編集できます。

値の範囲を反復するforループを見てみましょう。

for i in range(0,5):
   print(i)

このプログラムを実行すると、出力は次のように生成されます。

Output
0 1 2 3 4

このforループは、反復変数としてiを設定し、シーケンスは0から5の範囲で存在します。

次に、ループ内で、ループの反復ごとに1つの整数を出力します。 プログラミングではインデックス0から開始する傾向があるため、5つの数値が出力されますが、0〜4の範囲であることに注意してください。

プログラムがコードのブロックを何度も繰り返す必要がある場合は、通常、forループが表示されて使用されます。

range()を使用したForループ

Pythonに組み込まれている不変のシーケンスタイプの1つは、range()です。 ループでは、range()を使用して、ループが繰り返される回数を制御します。

range()を使用する場合、1〜3個の整数引数を渡すことができます。

range()にさまざまな引数を渡す例をいくつか確認します。

まず、stop引数のみを渡して、シーケンスの設定がrange(stop)になるようにします。

for i in range(6):
   print(i)

上記のプログラムでは、stop引数は6であるため、コードは0〜6(6を除く)で繰り返されます。

Output
0 1 2 3 4 5

次に、range(start, stop)を見て、反復を開始するタイミングと停止するタイミングの値を渡します。

for i in range(20,25):
   print(i)

ここでは、範囲は20(包括的)から25(排他的)になるため、出力は次のようになります。

Output
20 21 22 23 24

range()step引数は、シーケンス内の値をスキップするために使用できるという点で、文字列のスライス中にストライドを指定するに似ています。

3つの引数すべてで、stepは最終的な位置になります:range(start, stop, step)。 まず、正の値を持つstepを使用しましょう。

for i in range(0,15,3):
   print(i)

この場合、forループは、0から15までの数字が出力されるように設定されていますが、stepが3の場合、次のように3つおきの数字のみが出力されます。

Output
0 3 6 9 12

step引数に負の値を使用して逆方向に反復することもできますが、それに応じてstartおよびstop引数を調整する必要があります。

for i in range(100,0,-10):
   print(i)

ここで、100はstart値、0はstop値、-10は範囲であるため、ループは100で始まり、0で終わり、10ずつ減少します。各反復。 これは出力で発生します:

Output
100 90 80 70 60 50 40 30 20 10

Pythonでプログラミングする場合、forループは、反復のパラメーターとしてrange()シーケンスタイプを使用することがよくあります。

シーケンシャルデータ型を使用するForループ

リストおよびその他のデータシーケンスタイプも、forループの反復パラメーターとして利用できます。 range()を反復処理するのではなく、リストを定義してそのリストを反復処理できます。

リストを変数に割り当ててから、リストを繰り返し処理します。

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']

for shark in sharks:
   print(shark)

この場合、リスト内の各アイテムを印刷しています。 変数sharkを使用しましたが、その変数を他の有効な変数名と呼ぶこともでき、同じ出力が得られます。

Output
hammerhead great white dogfish frilled bullhead requiem

上記の出力は、forループがリストを繰り返し処理し、リストの各項目を1行ごとに出力したことを示しています。

リストおよび文字列タプルなどの他のシーケンスベースのデータ型は、反復可能であるため、ループで使用するのが一般的です。 これらのデータ型をrange()と組み合わせて、リストに項目を追加できます。次に例を示します。

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']

for item in range(len(sharks)):
   sharks.append('shark')

print(sharks)
Output
['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']

ここでは、sharksリストの長さの各アイテムに'shark'のプレースホルダー文字列を追加しました。

forループを使用して、リストを最初から作成することもできます。

integers = []

for i in range(10):
   integers.append(i)

print(integers)

この例では、リストintegersは空で初期化されますが、forループは次のようにリストに入力されます。

Output
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

同様に、文字列を反復処理できます。

sammy = 'Sammy'

for letter in sammy:
   print(letter)
Output
S a m m y

タプルの反復は、上記のリストまたは文字列の反復と同じ形式で実行されます。

ディクショナリを反復処理するときは、キー:値の構造を念頭に置いて、ディクショナリの正しい要素を呼び出していることを確認することが重要です。 キーと値の両方を呼び出す例を次に示します。

sammy_shark = {'name': 'Sammy', 'animal': 'shark', 'color': 'blue', 'location': 'ocean'}

for key in sammy_shark:
   print(key + ': ' + sammy_shark[key])
Output
name: Sammy animal: shark location: ocean color: blue

forループで辞書を使用する場合、反復変数は辞書のキーに対応し、dictionary_variable[iterating_variable]は値に対応します。 上記の場合、反復変数keyはキーを表し、sammy_shark[key]は値を表します。

ループは、シーケンシャルデータ型を反復および操作するためによく使用されます。

ネストされたForループ

ループは、他のプログラミング言語と同様に、Pythonでネストできます。

ネストされたループは、別のループ内で発生するループであり、ネストされたifステートメントと構造的に類似しています。 これらは次のように構成されています。

for [first iterating variable] in [outer loop]: # Outer loop
    [do something]  # Optional
    for [second iterating variable] in [nested loop]:   # Nested loop
        [do something]  

プログラムは最初に外側のループに遭遇し、最初の反復を実行します。 この最初の反復により、ネストされた内部ループがトリガーされ、最後まで実行されます。 次に、プログラムは外側のループの先頭に戻り、2回目の反復を完了して、ネストされたループを再度トリガーします。 この場合も、ネストされたループは完了するまで実行され、シーケンスが完了するか、 break または他のステートメントがプロセスを中断するまで、プログラムは外側のループの先頭に戻ります。

ネストされたforループを実装して、詳しく見てみましょう。 この例では、外側のループはnum_listと呼ばれる整数のリストを反復処理し、内側のループはalpha_listと呼ばれる文字列のリストを反復処理します。

num_list = [1, 2, 3]
alpha_list = ['a', 'b', 'c']

for number in num_list:
    print(number)
    for letter in alpha_list:
        print(letter)

このプログラムを実行すると、次の出力が表示されます。

Output
1 a b c 2 a b c 3 a b c

出力は、プログラムが1を出力して外側のループの最初の反復を完了し、次にab、を出力して内側のループの完了をトリガーすることを示しています。 【X196X】連続して。 内側のループが完了すると、プログラムは外側のループの先頭に戻り、2を出力してから、内側のループ全体を再度印刷します(abc)など。

ネストされたforループは、リストで構成されるリスト内のアイテムを反復処理するのに役立ちます。 リストで構成されるリストで、forループを1つだけ使用すると、プログラムは各内部リストをアイテムとして出力します。

list_of_lists = [['hammerhead', 'great white', 'dogfish'],[0, 1, 2],[9.9, 8.8, 7.7]]

for list in list_of_lists:
    print(list)
Output
['hammerhead', 'great white', 'dogfish'] [0, 1, 2] [9.9, 8.8, 7.7]

内部リストの個々のアイテムにアクセスするために、ネストされたforループを実装します。

list_of_lists = [['hammerhead', 'great white', 'dogfish'],[0, 1, 2],[9.9, 8.8, 7.7]]

for list in list_of_lists:
    for item in list:
        print(item)
Output
hammerhead great white dogfish 0 1 2 9.9 8.8 7.7

ネストされたforループを利用すると、リストに含まれる個々のアイテムを反復処理できます。

自然言語処理ツールキット(NLTK)のチュートリアルでは、動作中のプログラムで使用されているネストされたforループを確認できます。

結論

このチュートリアルでは、Pythonでforループがどのように機能するか、およびそれらを構築する方法について説明しました。 Forループは、特定の回数提供されたコードのブロックをループし続けます。

ここから、 whileループおよびブレーク、続行、およびパスステートメントのチュートリアルを読んで、ループについて学習し続けることができます。

プロジェクトでforループを操作するには、次のチュートリアルに従ってください。

モバイルバージョンを終了