コンピュータープログラミングでループを使用すると、同様のタスクを複数回自動化して繰り返すことができます。 このチュートリアルでは、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行ごとに出力したことを示しています。
リストおよびstringsやtuplesのような他のシーケンスベースの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
を出力することによって外部ループの最初の反復を完了し、次に内部ループの完了をトリガーして、a
、b
、c
を連続して出力することを示しています。 。 内側のループが完了すると、プログラムは外側のループの先頭に戻り、2
を出力してから、内側のループ全体(a
、b
、c
を再度出力します。 )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 loopsとbreak, continue, and pass statementsのチュートリアルを読んで、ループについて学習し続けることができます。
プロジェクトでfor
ループを操作するには、次のチュートリアルに従ってください。