Fix Python – How to expand a list to function arguments in Python [duplicate]

Question

Asked By – Brian McFarland

Is there syntax that allows you to expand a list into the arguments of a function call?

Example:

# Trivial example function, not meant to do anything useful.
def foo(x,y,z):
   return "%d, %d, %d" %(x,y,z)

# List of values that I want to pass into foo.
values = [1,2,3]

# I want to do something like this, and get the result "1, 2, 3":
foo( values.howDoYouExpandMe() )

Now we will see solution for issue: How to expand a list to function arguments in Python [duplicate]


Answer

It exists, but it’s hard to search for. I think most people call it the “splat” operator.

It’s in the documentation as “Unpacking argument lists“.

You’d use it like this for positional arguments:

values = [1, 2]
foo(*values)

There’s also one for dictionaries to call with named arguments:

d = {'a': 1, 'b': 2}
def foo(a, b):
    pass
foo(**d)

This question is answered By – Daenyth

This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0