hi!
Don't worry it's pretty common question for newcomers :)
This is called Function Argument Packaging and Function Argument Unpackaging.
arguments could be packaged into list or dictionary:
* - position based arguments
** - name based arguments
>>> def f(*a, **b):
return a, b
>>> x, y = f(3, 'hello', c=4, test='world')
>>> print x
(3, 'hello')
>>> print y
{'c':4, 'test':'world'}
and vice versa, arguments could be extracted for functions
>>> def f(a, b):
return a + b
>>> c = (1, 2)
>>> print f(*c)
3
>>> def f(a, b):
return a + b
>>> c = {'a':1, 'b':2}
>>> print f(**c)
3