The reverse situation occurs when the arguments are already in a list or tuple but need to be unpacked for a function call requiring separate positional argrumets. For instance, the built-in range() function expects separate start and stop arguments. If they are not available separately, write the function call with the * operator to unpack the arguments out of a list or tuple:
args = [38]
print range(*args)    #call with arguments unpacked from a list

In the same fashion, dictionaries can deliver keyword arguments with the ** operator:
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, '!'

= {'voltage''four million''state'"bleedin' demised"'action''VOOM'}

parrot(
**d)