Python入門 for in文の活用(動画あり)

Pythonでイテラブルなオブジェクトから要素をひとつひとつ抜き出して同じ処理をする場合、for in文が使われます。
これは、プログラムの中でも代表的なアルゴリズムになります。
今回はさらにPythonのfor in文の活用法を紹介していきます。

enumerate()の使い方

Pythonのfor in文では、enumerate()関数を使うと、forループの中でリスト(配列)などのイテラブルオブジェクトの要素と同時にインデックス番号(カウント、順番)を取得できます。
記述のポイントは、for と in の間に記述する変数を1つから2つにすることです。最初の変数にインデックス番号が格納され、次の変数に要素の値が格納されます。

for 変数(インデックス番号), 変数(値) in enumerate(リスト):
    処理

enumerate()を使用した例

subject_list = ["Japanese","English","Math","Science","Society"]
for i,j in enumerate(subject_list):
  print(i,j)

結果
0 Japanese
1 English
2 Math
3 Science
4 Society

for inで指定した変数を使わない場合

for in文では要素の数だけループさせることができます。そのため、特に要素の値は使用しないけれども要素数だけループさせたい場合もあります。
そのような場合、通常通りの書き方もできますが、特に変数は使ってないことを知らせるために変数名をアンダースコア_ にする場合があります。時々そのようなコードを見かけますがその場合この変数は使ってないとわかります。

アンダースコアを変数に使用した例
numから取り出した数値を使用せずに、要素の数だけHelloを表示させています。

num = [1, 2, 3, 4]
for _ in num:
  print('Hello')

結果
Hello
Hello
Hello
Hello

変数として使われるアンダースコアは他にも、インタープリタで最後に実行した結果を保持してくれたりもします。

continueの使い方

continueを使用するとループの次のイテレーション にジャンプします。
例えばループを繰り返す中で、ある条件の時だけスキップしたい場合などに使います。

continueの例
奇数だけ表示しています。

for i in range(20):
  if i % 2 ==0:
    continue
  else:
    print(i)

結果
1
3
5
7
9
11
13
15
17
19

breakの使い方

break文に到達するとループを中止します。
つまり、ループの途中で、何らかの条件に当てはまる時にループを中止したい場合に使います。

breakを使ったループの例

for i in range(20):
  if i == 16:  # i > 15でも同様の結果
    break
  else:
    print(i)

結果
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

for in文で辞書の取り出し

Pythonのfor in文はイテラブルなオブジェクトから要素を取り出すことができます。
そのため、リストだけではなく、辞書から要素を取り出すこともできます。
ただし、注意が必要なのは要素の値ではなく、キーが取り出されることです。

辞書から値だけ取り出したい場合は、values()を活用します。
また、辞書からキーと値の両方を取り出したい場合は、items()を活用します。

辞書でfor in文を使用した例

my_dict = {'apple':'りんご', 'orange':'みかん', 'grape':'ぶどう'}
for val in my_dict:
  print(val)

結果
apple
orange
grape

明示的にキーを取り出す方法

keys()を活用した方法

for k in my_dict.keys():
  print(k)

辞書から値だけ取り出す方法

values()を活用した方法

for v in my_dict.values():
  print(v)

辞書からキーと値の両方を取り出す方法

items()を活用した方法

for i in my_dict.items():
  print(i)

参考になった書籍

プログラミングを少しでも経験がありPython の文法を学習する場合は、「入門 Python 3」が良いと思います。長く使えます。

「退屈なことはPython にやらせよう」はオブジェクト指向の解説がないです。代わりにPythonを使った便利な実例が初心者には嬉しい内容です。正規表現から、簡単なスクレイピング 、画像操作などあります。ただし、中級者以上には少し物足りないかもしれません。

Pythonサンプルのダウンロード

ここでダウンロードする「for_in.ipynb」ファイルは、このPython動画で使用したものです。

for_in.ipynb

Python入門一覧