2011年6月2日木曜日

zip の引数にアスタリスクをつけるとくっつける順番がかわる。

いわゆる可変長引数の展開の有無です。


zip([range(5), list("abcde")])
[([0, 1, 2, 3, 4],), (['a', 'b', 'c', 'd', 'e'],)]

zip(*[range(5), list("abcde")])
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e')]

アスタリスクをつけると展開されるので、下の例は

zip(range(5), list("abcde"))
[([0, 1, 2, 3, 4],), (['a', 'b', 'c', 'd', 'e'],)]

と等価。