for i in range(A) と for i in A

Pythonでのfor文の書き方は大きく2つあります。
① for i in range(A)
② for i in A



① for i in range(A) の方は、例えばA=10なら「10回繰り返す」ということを意味します。
ですから次のスクリプトでは print i の結果が10回表示されます。
(念のため補足ですが、0から9までの10個です。1から10までではありません。)



では② for i in A とはどういう意味でしょうか。何回繰り返せば良いかは指定していません。
実はこの場合、Aというのはリストで、リストの要素を順番に変数にしてfor文を回す、という処理をします。
ですから次のスクリプトでは print i というのは aaa,bbb,ccc,ddd が順に表示されます。
繰り返し回数はリストの要素の個数だけ、ということになります。

リストの要素を順番に表示するだけなら①の書き方でもできなくはありません。
len(A) というリストの長さを取得する書き方を使えば次のようにできますが、②の方がシンプルなのは明白ですね。



さて、①と②の区別はできたところで満足かもしれませんが、もう少しだけお付き合いください。
冒頭で「for文の書き方は2つある」と言い、さも違う書き方かのようにお話ししましたが、実は両者は同じ書き方です。
①の方で使った range(A) というのは、実はリストのことです。
試しに適当に端末上のpythonで print range(5) と打ってみてください。0から4までの5つの数字が要素として入っているリストが表示されたことでしょう。

これでお分かりですね。
まとめると、①と②どちらも、リストの要素を順番に変数にしているだけだったのです。

今回はここまで。


Pythonの記事一覧へは こちら から。