zip()は複数のシーケンスをまとめて処理することができるので非常に便利です。
リストをまとめる
以下のプログラムはzip()を使ってまとめる例です。
1 2 3 4 |
name_list = ["Jhon", "Mike", "Bob"] age_list = [23, 31, 28] result = zip(name_list, age_list) print result # [('Jhon', 23), ('Mike', 31), ('Bob', 28)] |
上のプログラムを実行するとタプルのリストに変換されます。
もしzip()の引数の要素数が異なる場合は、要素数が小さい方に合わせられ残りの要素を捨てられます。
1 2 3 4 |
name_list = ["Jhon", "Mike", "Bob"] age_list = [23, 31] result = zip(name_list, age_list) print result # [('Jhon', 23), ('Mike', 31)] |
このようにname_listの"Bob" という3番目の要素が無くなっていることが確認できます。
リストをまとめてループ処理を行う
zip()を使えばループ処理の際に2つのリストをインデックス無しで同時に扱えるので便利です。
1 2 3 4 5 |
name_list = ["Jhon", "Mike", "Bob"] age_list = [23, 31, 28] for (name, age) in zip(name_list, age_list): print str(name) + ":" + str(age) |
上のプログラムの実行結果は以下のようになります。
1 2 3 |
Jhon:23 Mike:31 Bob:28 |