こんにちは。Takuyaです。
今回は Python の for
文です。
プログラミングでは定番の繰り返しの処理を行うための構文ですね。
Pythonにおけるfor
文の基本的な書き方、具体的な使い方の例をいくつか見ていきます。
for 文の書式
for
文の書き方は次のようになります。
変数名は繰り返したい処理の中で使用する変数になります。
シーケンス にはリスト、辞書、あとはrange()
関数が入ることが多いです。リストの要素を順番に取り出して変数名に入れて、繰り返したい処理を行います。シーケンスの前のはin
、後ろには:
を書きます。
そして、for ~ in ~ :
の次の行から繰り返したい処理を書くのですが、繰り返したい処理の前にインデントを入れます。半角スペース4個を入れることが多いですが、全体で統一されていれば4個以外でも問題ありません。
このインデントが入っている行が続く限り、それは全てfor
文の中の繰り返し処理だと判断されます。
Python におけるfor
文は全てこの書き方になります。
例外はありません。
for 文の具体的な書き方
続いて、具体的なfor
文の書き方を見ていきます。
繰り返したい回数が決まっている場合はrange()関数を使う
for
文で繰り返したい回数が決まっている場合はシーケンスにrange()
関数を使います。
for i in range(5):
print(i)
上記の実行結果
0
1
2
3
4
range(5)
の場合、変数i
には0〜4が入ります。
1から始めたい場合はrange()
関数で始点を指定します。
for i in range(1,6):
print(i)
上記の実行結果
1
2
3
4
5
リストを使う
続いて、リストを使う場合です。
num_list = [1, 2, 3, 4, 5]
for i in num_list:
print(i)
上記の実行結果
1
2
3
4
5
シーケンスにリストを指定すると、リストから要素を順番に取り出して変数に格納し、繰り返し処理を実行します。
words = ['Happy', 'birthday', 'to', 'you.']
for word in words:
print(word)
上記の実行結果
Happy
birthday
to
you.
enumerate()関数を使う
リストのインデックス番号も利用したい場合はenumerate()
関数が便利です。
インデックス番号と要素を同時に取り出せます。
sample_list = ["apple", "orange", "banana"]
for index, value in enumerate(sample_list):
print(index, value)
上記の実行結果
0 apple
1 orange
2 banana
辞書を使う
続いて、辞書を使う場合です。
fruits = {'apple':100, 'orange':200, 'banana':300}
for fruit in fruits:
print(fruit)
リストと同じように書いてみました。
この場合、どういう結果になるでしょうか。
ここで、辞書について自信の無い方はぜひ下記記事を見直していただきたいです。
辞書は key と value を持っています。
‘apple’、’orange’、’banana’ が key で、100、200、300が value になります。
では、for
文のシーケンスに辞書を指定するとどうなるか?
正解は、key が変数に格納されます。
そのため、最初のコードの実行結果は次のようになります。
apple
orange
banana
では、辞書の value をfor 文の変数に格納したい場合はどうするのか?
辞書の values()
メソッドを使います。
fruits = {'apple':100, 'orange':200, 'banana':300}
for fruit in fruits.values():
print(fruit)
上記の実行結果
100
200
300
では、key も value も使いたい場合はどうするのか???
この場合は、辞書のitems()
メソッドを使います。
また、2つの値を繰り返し処理の中で使うことになるので、変数名も2つ、カンマで区切って指定します。
fruits = {'apple':100, 'orange':200, 'banana':300}
for fruit_name, fruit_price in fruits.items():
print(fruit_name, fruit_price)
上記の実行結果
apple 100
orange 200
banana 300
辞書を使ってfor
文を回すケースも多いと思うので、辞書のvalues()
メソッドとitems()
メソッドは覚えておきましょう。
ちなみに、辞書にはkeys()
メソッドもあります。
その他にシーケンスに指定できるもの
range()
関数、リスト、辞書を使うパターンをご紹介しましたが、その他にもシーケンスに使えるものはあるのでしょうか?
もちろんあります。
for
文のシーケンスとして使用できるものは反復可能体(iterable、イテラブル)と呼ばれています。
for
文に関してさらに理解を深めたい方はイテラブルについて調べてみると良いかもしれません。
ちなみに、シーケンスとしてタプルも使えますし、文字列も使えます。
num_tuple = (1, 2, 3)
for i in num_tuple:
print(i)
上記の実行結果
1
2
3
for i in 'Happy':
print(i)
上記の実行結果
H
a
p
p
y
Google Colaboratory
本記事に掲載しているコードはGoogle Colaboratoryでも動作を確認しています。
下記リンクからアクセスして、ご自身の Google ドライブにコピーしていただければ、すぐに実行できます。
環境構築が必要ない Google が提供している Web サービスなので、Python を学習中の方、これから学習を始める方にはオススメです。
まとめ
今回は Python におけるfor
文について、
- 基本的な書き方
range()
関数を使う例- リストを使う例
enumerate()
関数を使う例- 辞書を使う例
をご紹介しました。
以上です。
コメント