基本的なfor文
for ループ内の変数名 in イテラブルオブジェクト:
処理
イテラブルオブジェクトとは、文字列、リスト、ディクショナリ、タプル、セットなどの要素を順番に取り出すことのできるオブジェクトのことです。例えば、リストから要素を順番に取り出して出力するプログラムは以下のように書けます。
mylist = [1, 2, 3, 4, 5]
for n in mylist:
print(n)
#1
#2
#3
#4
#5
他の言語を先に学んだ方は、以下のように書きがちですが、これはPythonらしくありません。
mylist = [1, 2, 3, 4, 5]
for i in range(len(mylist)):
print(mylist[i])
#1
#2
#3
#4
#5
インデックスも同時に取り出したい場合には以下のようにします。
mystr = "abcde"
for i, s in enumerate(mystr):
print(i, s)
#0 a
#1 b
#2 c
#3 d
#4 e
他の言語を先に学んだ方は、以下のように書きがちですが、これはPythonらしくありません。
mystr = "abcde"
for i in range(len(mystr)):
print(i, mystr[i])
#0 a
#1 b
#2 c
#3 d
#4 e
以下のような書き方もPythonらしくないので、やめてください。
mystr = "abcde"
i = 0
for c in mystr:
print(i, c)
i += 1
#0 a
#1 b
#2 c
#3 d
#4 e
ディクショナリの場合は、for文で回すと以下のようになります。
mydict = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}
for key in mydict:
print(key)
#a
#b
#c
#d
#e
ディクショナリのキーが順番に取り出されてきます。ディクショナリの値も一緒に取り出したい場合には、以下のようにします。
for key, value in mydict.items():
print(key, value)
#a 1
#b 2
#c 3
#d 4
#e 5
他の言語を先に学んだ方は、以下のように書きがちですが、これはPythonらしくありません。
for key in mydict:
print(key, mydict[key])
#a 1
#b 2
#c 3
#d 4
#e 5