へい

学んだこととか、思ったこと。プログラミングしてみたり、野球したり、筋トレしたり、hiphop聞いたり、格闘技見たりするのが好き。

pythonのfor文の話

1、2か月前にデータサイエンス・機械学習をかじりました。せっかくなのである程度できるようになりたいので、もう一度pythonの勉強からやり直してます。 今回はpythonのfor文がいろんな種類あるよって話です。 まずは普通の(よく知ってるやつ)

children = ['jack', 'bob', 'alex']

for child in children:
    print(child)

=> 'jack'
      'bob'
      'alex'

range()も使えるよって話

for num in range(5):
    print(num)

=> 1
      2
     3
     4

range()のちょっと応用の話

# 0~8を2つ飛ばしで表示
for num in range(0, 9, 2):
    print(num)

=> 0
     2
     4
     6
     8

zipのお話

for文でzipを使うと2つのオブジェクトから要素を取り出して、繰り返しできるって話です。 下の例は2つの配列オブジェクトから要素を取り出す話です。

children = ['jack', 'bob', 'alex']
fathers = ['太郎', '二郎', '三郎']


for child, father in zip(children, fathers):
    print("{}'s father is {}".format(child, father))

=>jack's father is 太郎
    bob's father is 二郎
    alex's father is 三郎

とか

片方のオブジェクトをrange()にしてもできます。

enumerateのお話

for文でenumerateを使うと、zipでrange()を使ったみたいになります。rubyでいうとeach_with_indexみたいに勝手にinitがついてきます。(違います?)

children = ['jack', 'bob', 'alex']


for num, child in enumerate(children):
    print("No{}. is {}".format(num, child))

=>No0. is jack
    No1. is bob
    No2. is ale

というお話でした。