Pythonのドキュメントから:
逆の状況は、引数が既にリストまたはタプルにあるが、個別の位置引数を必要とする関数呼び出しのためにアンパックする必要がある場合に発生します。たとえば、組み込みの range() 関数は、別個の開始引数と停止引数を想定しています。それらが個別に利用できない場合は、 *-operator を使用して関数呼び出しを記述し、リストまたはタプルから引数をアンパックします。
>>> range(3, 6) # normal call with separate arguments
[3, 4, 5]
>>> args = [3, 6]
>>> range(*args) # call with arguments unpacked from a list
[3, 4, 5]
同様に、辞書は **- 演算子を使用してキーワード引数を渡すことができます。
>>> def parrot(voltage, state='a stiff', action='voom'):
... print "-- This parrot wouldn't", action,
... print "if you put", voltage, "volts through it.",
... print "E's", state, "!"
...
>>> d = {"voltage": "four million", "state": "bleedin' demised", "action": "VOOM"}
>>> parrot(**d)
-- This parrot wouldn't VOOM if you put four million volts through it. E's bleedin' demised !