Python 3でforループを構築する方法

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

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

Forループ

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

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

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

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

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

このプログラムを実行すると、出力は次のようになります。

Output0
1
2
3
4

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

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

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

range()を使用するforループ

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

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

  • startは、シーケンスが開始する整数値を示します。これが含まれていない場合、startは0から開始します。

  • stopは常に必須であり、カウントアップされるが含まれない整数です。

  • stepは、次の反復でどれだけ増加(または負の数の場合は減少)するかを設定します。これを省略すると、stepのデフォルトは1になります。

range()にさまざまな引数を渡す例をいくつか見ていきます。

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

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

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

Output0
1
2
3
4
5

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

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

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

Output20
21
22
23
24

range()step引数は、シーケンス内の値をスキップするために使用できるという点でspecifying stride while slicing stringsに似ています。

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

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

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

Output0
3
6
9
12

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

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

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

Output100
90
80
70
60
50
40
30
20
10

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

順次データ型を使用するforループ

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

リストを変数に割り当て、リストを反復処理します。

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

for shark in sharks:
   print(shark)

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

Outputhammerhead
great white
dogfish
frilled
bullhead
requiem

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

リストおよびstringstuplesのような他のシーケンスベースのdata typesは、反復可能であるため、ループで使用するのが一般的です。 これらのデータ型を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)
OutputS
a
m
m
y

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

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

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

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

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

ループは、多くの場合、順次データ型を反復して操作するために使用されます。

ネストされたForループ

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

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

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)

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

Output1
a
b
c
2
a
b
c
3
a
b
c

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

ネストされた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)
Outputhammerhead
great white
dogfish
0
1
2
9.9
8.8
7.7

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

Natural Language Processing Toolkit (NLTK)のチュートリアルでは、動作中のプログラムで使用されているネストされたforループを確認できます。

結論

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

ここから、while loopsbreak, continue, and pass statementsのチュートリアルを読んで、ループについて学習し続けることができます。

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