zip関数と逆の動きをさせる方法(unzip)

pythonでzipと言えば、複数のリストのタプルを返す関数です。挙動は、

In [5]: a = [1,2,3]
In [6]: b = [4,5,6]
In [7]: c = [7,8,9]

In [8]: zip(a,b,c)
Out[8]: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

こんな動きをします。行列の転置に似てるなと、今思いました。
この逆の動きをする関数がないものかなーと調べてたら、関数はないものの、簡単な方法がありました。

In [9]: d = zip(a,b,c)
In [10]: zip(*d) # ここ注目!
Out[10]: [(1, 2, 3), (4, 5, 6), (7, 8, 9)]

なにこの、奇跡の一行w
ということで、zipした変数の前に*演算子をつけてzipすると、元に戻るというメモでした。