Python has a seldom used unary operator that lets you “flatten” lists and dictionaries into function arguments.

def foo(a, b, c):
  print a, b ,c

>>> li = [1, 2 ,3]
>>> foo(*li)
1 2 3

The * operator converts a dictionary to keyword arguments:

def foo(bar=None, baz=None, quux=None):
  print bar, baz, quux

>>> d = {"bar":1, "baz":2, "quux":3}
>>> foo(**d)
1 2 3

Simple, but useful.

http://docs.python.org/tutorial/controlflow.html#unpacking-argument-lists