[Python]pythonのfor文

最近Pythonを触る機会が増えてきたので少しずつ文法周りをメモしておく。

pythonのfor文は下記のデータ型に対して有効。

  • 文字列
  • リスト:[‘a’, ‘b’, ‘c’]
  • タプル(イミュータブルなリスト):(‘a’, ‘b’, ‘c’)
  • セット(集合):{‘a’, ‘b’, ‘c’}
  • 辞書(連想配列):{‘a’: 1, ‘b’: 2, ‘c’: 3}

for文の書式

リストに対してfor文を実行するときは下記の書式で実行する。

for 変数 in データ:
    処理

for文の対象となるデータはリストなども勿論だが文字列に対しても行うことができる。

for v in 'Hello':
    print(v)
# H
# e
# l
# l
# o

リストで実行する時。

list = ['a', 'b', 'c']
for v in list:
    print(v)

辞書に対してfor文を実行すると値ではなくインデックスが取得できる。

dict = {'1': 'one', '2': 'two', '3': 'three'}
for k in dict:
    print(k)
# 1
# 2
# 3

辞書に対して1つのfor文でインデックスと値を取得したい場合はitems()メソッドを使用する。

dict = {'1': 'one', '2': 'two', '3': 'three'}
for k, v in dict.items():
    print(k + ':' + v)
# 1:one
# 2:two
# 3:three

リストに対して1つのfor文でインデックスと値を取得したい場合はenumerate()メソッドを使用する。

list = ['a', 'b', 'c']
for k, v in enumerate(list):
    print(k, v)
# (0, 'a')
# (1, 'b')
# (2, 'c')

指定回数ループを回す

range()を使用して指定した回数ループを回すことができる。

for v in range(5):
    print(v)
# 0
# 1
# 2
# 3
# 4

range()は始点と終点の2つの引数を指定することも可能。

for v in range(1, 6):
    print(v)
# 1
# 2
# 3
# 4
# 5

break – continue

while文と同様にfor文の中でもbreakとcontinueを使用することができる。

for v in range(10):
    if v % 2 == 0:
        continue
    print(v)
# 1
# 3
# 5
# 7
# 9
for v in range(10):
    if v == 5:
        break
    print(v)
# 0
# 1
# 2
# 3
# 4

for – else

普段phpを使っている人間としては見かけない表現なので面白い。
forのループの中でelseで分岐を使用できる。
これは「breakでなければelse文の内容を実行する」と言う意味になる。

for v in range(2, 20):
    if v == 20:
        break
else:
    print(v)
# 19

参考

【Python入門】for文を使った繰り返し文の書き方

[Python]リスト、タプル、辞書、集合の違い

Pythonの辞書(dict)のforループ処理(keys, values, items)

Python, enumerateの使い方: リストの要素とインデックスを取得

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

three × 1 =

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください