Passing an array/list into a Python function Passing an array/list into a Python function python python

Passing an array/list into a Python function


When you define your function using this syntax:

def someFunc(*args):    for x in args        print x

You're telling it that you expect a variable number of arguments. If you want to pass in a List (Array from other languages) you'd do something like this:

def someFunc(myList = [], *args):    for x in myList:        print x

Then you can call it with this:

items = [1,2,3,4,5]someFunc(items)

You need to define named arguments before variable arguments, and variable arguments before keyword arguments. You can also have this:

def someFunc(arg1, arg2, arg3, *args, **kwargs):    for x in args        print x

Which requires at least three arguments, and supports variable numbers of other arguments and keyword arguments.


You can pass lists just like other types:

l = [1,2,3]def stuff(a):   for x in a:      print astuff(l)

This prints the list l. Keep in mind lists are passed as references not as a deep copy.


You don't need to use the asterisk to accept a list.

Simply give the argument a name in the definition, and pass in a list like

def takes_list(a_list):    for item in a_list:         print item