for文の実装方法はいろいろあります。
プログラムの意図に沿ったものを使いましょう。
rangeを使ったfor文
数値のfor文はrangeを使いましょう。
少数で回したい場合はnumpy.arangeを使いましょう
for i in range(3):
print(i)
# 0
# 1
# 2
for i in range(3, 0, -1):
print(i)
# 3
# 2
# 1
# 降順で処理することも可能。
rangeの参考記事もご覧ください。
Pythonのrange関数で等間隔の値を生成する
numpy.arangeを使ったfor文
numpy.arangeは、整数と少数のfor文に便利です。
ただし、浮動小数点の誤差問題があるので、round関数を併用しましょう。
誤差問題の詳細を知りたい方は「python 浮動小数点 問題」などで検索してみてください。
少数のfor文のサンプルコードです。
for i in np.arange(0, 1, 0.2):
print(i)
# 0.0
# 0.2
# 0.4
# 0.6000000000000001
# 0.8
# そのままだと、浮動小数点の誤差問題が発生する。
for i in np.arange(0, 1, 0.2):
print(round(i, 8))
# 0.0
# 0.2
# 0.4
# 0.6
# 0.8
# roundで浮動小数点の誤差問題を回避する。
for i in np.arange(1, 0, -0.2):
print(i)
# 1.0
# 0.8
# 0.6000000000000001
# 0.40000000000000013
# 0.20000000000000018
for i in np.arange(1, 0, -0.2):
print(round(i, 8))
# 1.0
# 0.8
# 0.6
# 0.4
# 0.2
numpy.arangeの参考記事もご覧ください。
NumPyのarangeとlinspaceで等間隔の値を生成する
listを使ったfor文
listのfor文の書き方です。
enumerateを併用すると便利です。
l = ['aaa', 'bbb', 'ccc']
for v in l:
print(v)
# aaa
# bbb
# ccc
l = ['aaa', 'bbb', 'ccc']
for i, v in enumerate(l):
print(f'i:{i} v:{v}')
# i:0 v:aaa
# i:1 v:bbb
# i:2 v:ccc
Pythonのenumerateでfor文をすこし便利にする
dictionaryを使ったfor文
辞書型を使ったfor文です。
辞書型でもenumerateは使用できます。
d = {'aaa': 1, 'bbb': 2, 'ccc': 3}
for k in d:
print(f'key:{k} value:{d[k]}')
# key:aaa value:1
# key:bbb value:2
# key:ccc value:3
# そのままだとキーのfor文となる。
d = {'aaa': 1, 'bbb': 2, 'ccc': 3}
for k, v in d.items():
print(f'key:{k} value:{v}')
# key:aaa value:1
# key:bbb value:2
# key:ccc value:3
# itemsを使うと、キーと値のfor文にできる。
d = {'aaa': 1, 'bbb': 2, 'ccc': 3}
for i, (k, v) in enumerate(d.items()):
print(f'i:{i} key:{k} value:{v}')
# i:0 key:aaa value:1
# i:1 key:bbb value:2
# i:2 key:ccc value:3
# enumerateも使える。
keysとvaluesを使用したfor文も書けます。
d = {'aaa': 1, 'bbb': 2, 'ccc': 3}
for k in d.keys():
print(k)
# aaa
# bbb
# ccc
d = {'aaa': 1, 'bbb': 2, 'ccc': 3}
for v in d.values():
print(v)
# 1
# 2
# 3
Pythonで辞書型を作成・変更・表示・出力する
