本記事では、pythonで用いられる文法の一つであるfor文について、その基本的な使い方と一緒に用いると便利な関数までご紹介していこうと思います。
for文は、繰り返し同じ処理を行いたいときに非常に重宝する文法になっているので、本記事を通して基本的なところはしっかりと抑えてしまいましょう。
ちなみに、本ブログでは初心者の方でも理解できるように丁寧に説明しているので、全くの初心者という方も安心してください。
また、pythonをまだインストールしていないといった方は以下の記事を参考にしてインストールしてみましょう。
この記事でわかること
- for文の使い方
- for elseについて
- for文と一緒に用いられる便利な関数について
目次
for文について
まず初めに、for文とはどのような処理を行うものなのかについて簡単に説明していこうと思います。
for文とは?
for文とは、一言で説明すると、リストなどの複数のデータからなるものの要素を1から取り出していき、その取り出した要素に対してある処理を行うといった命令をする文法になっています。
言葉のみだと少しわかりにくいと思うので、実際のコードを用いてfor文が行っている処理を確認していきましょう。
for文の基本的な使い方
まずはfor文の基本構文についてです。
for 変数名 in リスト等:
処理
基本的には、リストなどの複数の要素が入ったデータ型の要素を1から順に変数に代入していき、代入するたびにその下に書いてある処理を行うといった形になっています。
ここでリストに関しては、以下の記事を参考にして下さい。
では、具体的な例を見ていきましょう。
<input>
test_list = ["apple", "banana", "orange", "grape"]
for i in test_list:
print(i)
<output>
apple
banana
orange
grape
上記コードでは、test_listといったリストの要素を1番目のものから順にi に代入していき、代入するたびに『print(i)』を実行しています。
もちろん、test_listには要素が4つあるので、『print(i)』は4回実行されることとなり、リストの中の要素が4つとも出力されているのがわかると思います。
for elseの使い方
<input>
test_list = ["apple", "banana", "orange", "grape"]
for i in test_list:
print(i)
else:
print("finish!")
<output>
apple
banana
orange
grape
finish!
elseは、for文を抜けた後、何か別の処理を行いたいときに使用します。
elseの後に記述した処理がfor文の処理終了後に実行されるので、上記のコードですと、最後の行にfinishが出力されていますよね。
辞書をfor文で処理する
先ほどは、リストに対してfor文を用いて処理を行っていましたが、実はちょっとリストと形が異なる辞書型に対してもfor文を適用することが出来ます。
「辞書型って何?」という方は、以下の記事を参考にしてください。
では、実際のコードを用いて辞書型変数の処理方法を確認していきましょう。
<input>
a = {"x": 10, "y": 20}
print(a.items())
for k, v in a.items():
print(k, v)
<output>
dict_items([('x', 10), ('y', 20)])
x 10
y 20
辞書型の変数は、リストと同じようにそのままfor文の中に入れてしまうと形が複雑なので、コンピュータが読み取れずにエラーを吐いてしまいます。
そのため、辞書が持つメソッド『items』を用いて変形を施してあげる必要があるんです。
上記コードにもあるように『items』を用いると、辞書型がリスト型に変形されるので、これでfor文を用いて辞書型の変数も処理することが出来ます。
for文で用いられる便利な関数
続いては、for文とよく一緒に用いられている便利な関数についてです。
今から紹介する関数は、知っていると楽にコードを書くことが出来る代物なのでぜひ覚えておきましょう。
ちなみに、紹介する関数は以下の通りです。
- range関数:数列を出力
- enumerate関数:インデックスを表示
- zip関数:
range関数:数列を出力
<input>
for i in range(10):
print(i)
<output>
0
1
2
3
4
5
6
7
8
9
range関数を用いると、数列を簡単に作ることが出来ます。
今回は、『range(10)』と指定しているので、0から10の手前の9までを出力するといった命令になっています。
また、以下のように記述すれば開始位置をずらすことも可能です。
<input>
for i in range(2, 10):
print(i)
<output>
2
3
4
5
6
7
8
9
このように、引数を二つ取ることで開始位置を0から2にずらすことが出来ました。
さらに、以下のようなことも行えます。
<input>
for i in range(2, 10, 3):
print(i)
<output>
2
5
8
第三引数を指定することで、○○個飛ばしで数字を表示させることも可能です。
上記の例では3個飛ばしで表示していますね。
enumerate関数:インデックスを表示
<input>
sports = ["soccer", "baseball", "swimming", "basketball"]
for i, sports in enumerate(sports):
print(i, sports)
<output>
0 soccer
1 baseball
2 swimming
3 basketball
enumerate関数を用いると、各要素の隣にインデックスを表示させることが出来ます。
zip関数:複数リストの表示
<input>
sports = ["soccer", "baseball", "swimming", "basketball"]
items = ["soccer ball", "glove", "goggle", "basketball shoes"]
places = ["stadium", "ground", "pool", "gym"]
for sport, item, place in zip(sports, items, places):
print(sport, item, place)
<output>
soccer soccer ball stadium
baseball glove ground
swimming goggle pool
basketball basketball shoes gym
zip関数では、複数のリストを同時に表示させることが出来ます。
今回は、『sports』『items』『places』といった3つのリストを横に並べて表示していますね。
まとめ
今回は、for文についてその使い方や一緒に利用すると便利な関数まで紹介してきましたがいかがだったでしょうか。
for文は、反復処理を行いたいといった時に欠かせない文法となっており、現在も様々なところで活躍しています。
本記事の内容を参考にしてfor文への理解を少しでも深めていただければ幸いです。