zipの逆
zipの逆はunzipだろJK
- r0c zip() の逆をする関数は無いのだろうか
というのはもちろん冗談。zipは二回適用するともとに戻る。
>>> zip([1, 2, 3], [4, 5, 6]) [(1, 4), (2, 5), (3, 6)] >>> zip(*_) [(1, 2, 3), (4, 5, 6)] >>> zip([1, 2, 3], [4, 5, 6], [7, 8, 9]) [(1, 4, 7), (2, 5, 8), (3, 6, 9)] >>> zip(*_) [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
ただし「もとがリストだったかタプルだったか、はたまた文字列だったのか」という情報は失われる。最初のzipの時点で失われているのでこれが嫌なら型の情報を保存するzipを作る必要がある。そういうニーズがどういうときにあるのかわからないけど。
>>> zip("abc", ["+", "-"]) [('a', '+'), ('b', '-')]