zip関数の使い方

備忘録。
タプル(リスト)の組の各要素をひとまとめにしたタプルのリストとして返してくれる。
特にアスタリスク(*)つけた時の挙動が大事。タプルにする”方向”を変えてくれるので超ありがたい。

タプルを用意してそれを合体させてみる。

>>> x = (1,2,3)
>>> y = (4,5,6)
>>> zip(x, y)
[(1, 4), (2, 5), (3, 6)]
>>> for i,j in zip(x, y):
...     print i,j
... 
1 4
2 5
3 6

合体させたタプルを元に戻すにはzip(*hoge)みたいに書く。

>>> z = zip(x,y)
>>> z
[(1, 4), (2, 5), (3, 6)]
>>> zip(*z)
[(1, 2, 3), (4, 5, 6)]

なんで手元にタプルのリストがあってそれを組み替えたい時にも使える。