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)
このプログラムを実行すると、出力は次のように生成されます。
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
引数は、シーケンス内の値をスキップするために使用できるという点で、文字列のスライス中にストライドを指定するに似ています。
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ループ
リストおよびその他のデータシーケンスタイプも、for
ループの反復パラメーターとして利用できます。 range()
を反復処理するのではなく、リストを定義してそのリストを反復処理できます。
リストを変数に割り当ててから、リストを繰り返し処理します。
sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for shark in sharks:
print(shark)
この場合、リスト内の各アイテムを印刷しています。 変数shark
を使用しましたが、その変数を他の有効な変数名と呼ぶこともでき、同じ出力が得られます。
Outputhammerhead
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)
OutputS
a
m
m
y
タプルの反復は、上記のリストまたは文字列の反復と同じ形式で実行されます。
ディクショナリを反復処理するときは、キー:値の構造を念頭に置いて、ディクショナリの正しい要素を呼び出していることを確認することが重要です。 キーと値の両方を呼び出す例を次に示します。
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でネストできます。
ネストされたループは、別のループ内で発生するループであり、ネストされた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)
このプログラムを実行すると、次の出力が表示されます。
Output1
a
b
c
2
a
b
c
3
a
b
c
出力は、プログラムが1
を出力して外側のループの最初の反復を完了し、次にa
、b
、2
を出力してから、内側のループ全体を再度印刷します(a
、b
、 c
)など。
ネストされた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
ループを利用すると、リストに含まれる個々のアイテムを反復処理できます。
自然言語処理ツールキット(NLTK)のチュートリアルでは、動作中のプログラムで使用されているネストされたfor
ループを確認できます。
結論
このチュートリアルでは、Pythonでfor
ループがどのように機能するか、およびそれらを構築する方法について説明しました。 Forループは、特定の回数提供されたコードのブロックをループし続けます。
ここから、 whileループおよびブレーク、続行、およびパスステートメントのチュートリアルを読んで、ループについて学習し続けることができます。
プロジェクトでfor
ループを操作するには、次のチュートリアルに従ってください。