サイトアイコン Python Snippets

forループで便利な zip, enumerate関数

zip関数 複数のシーケンスをまとめてループ

データのzip圧縮についてはこちらを参照

複数のシーケンスオブジェクトを同時にループするときに使用する。要素数が違う場合は一番少ないものに合わせられる。

>>> list1 = [1, 2, 3]
>>> list2 = [4, 5, 6]
>>> for (a, b) in zip(list1, list2):
#list1,list2を同時にループ
...   print a,b
... 
1 4
2 5
3 6

>>> list3 = [7, 8]
>>> for (a, b) in zip(list1, list3):
#要素数が少ないlist3に合わせられる
...   print a,b
... 
1 7
2 8

#行,列変換
>>> list4 = [
...   [1, 2, 3],
...   [4, 5, 6],
...   [7, 8, 9]
... ]
>>> for (a, b, c) in zip(*list4):
...    print a,b,c
... 
1 4 7
2 5 8
3 6 9

enumerate関数 インデックスとともにループ

ループする際にインデックスつきで要素を得ることができる。

>>> list1 = ['a', 'b', 'c']
>>> for (i, x) in enumerate(list1):
...   print i,x
... 
0 a
1 b
2 c
関連記事:

モバイルバージョンを終了