派遣事務員の迷走

派遣事務員コロ子。会社の犬。顔出しNG。常に迷走している。

【Python】 for文に変数が複数!!

こんにちは。
派犬事務員のコロ子です。

先日、ノンプロ研のVBA中級講座とPython初級講座合同の卒業LT大会に行ってきた。「こんな事できるようになたよ!」と講座で学んだ事を発表する会。
どうやらPython初級講座を受けるとWebサイトのスクレイピングとかできるようになるらしい。
「初級講座なのにそんな事できるようになっちゃうの!?コロ子もやりたーい!!」
とLTを聞きながらテンション上がって、次回講座の仮予約を申し込んでみた。
VBA, GAS, Pythonで最少催行人数に最も早く達したコースのみ開講なので、みんな急いてPythonに申し込みするのだ!
    ↓
docs.google.com


でも一つ注意は、Python初級講座に全くの初心者はいないらしいから講座開設までに少しでも先に進めなければ・・・。
お正月休みから全く進んでない・・・。

今日の驚き

そんな訳で細々とPythonをやっていたら「for文に変数が複数」をいうコードに遭遇。

①for文に変数が2つ

for i, j in [(1, 2), (3, 4), (5, 6)]:
    print(i, j)

えっ!!!こんなのアリ!?
変数2個、どうやってループするんだろう?

実行結果

1 2
3 4
5 6

変数「i」と「j」に要素が一度に代入される。
f:id:SNegishi:20200113001155p:plain

凄い!驚き!VBAしか知らなかったから、最初なかなか受け入れられなかった。

ちなみにfor文に変数が一つ、これはなんとなく馴染みがあるので受け入れ可能。

for i in [(1, 2), (3, 4), (5, 6)]:
    print(i)

(実行結果)

(1, 2)
(3, 4)
(5, 6)

VBAでいうところのFor each文に似ている。
ちょっと違うけどVBAならこんな感じ。

Dim i As Variant
Dim Arr() As Variant

Arr = Array(1, 2, 3)

For Each i In Arr
    Debug.Print i
Next i

(実行結果)

1
2
3

配列から1つづつ要素を取り出してるところが似ている。

VBAは1つづつしか要素を取り出せないけど、Pythonは一度に複数の要素を取り出せるので便利!