On Sat, Apr 7, 2012 at 2:15 PM, KRB <alaga...@gmail.com> wrote: > Hi there, > > I would like to be able to pass a list of variables to a procedure, and have > the output assigned to them.
You cannot pass a variable itself to a function; you can only pass a variable's value. Which is to say that Python doesn't use pass-by-reference. Without using black magic, a Python function cannot rebind variables in its caller's scope. Mutable values can be mutated however. Details: http://effbot.org/zone/call-by-object.htm > For instance: > > x=0 > y=0 > z=0 > > vars =[x,y,z] > parameters=[1,2,3] > > for i in range(1,len(vars)): > *** somefunction that takes the parameter "1", does a computation and assigns > the output to "x", and so on and so forth. > > Such that later in the program I can > print x,y,z > > I hope that makes sense, otherwise I have to do: > x=somefunction(1) > y=somefunction(2) > z=somefunction(3) > etc etc Just use sequence (un)packing: def somefunction(*parameters): # one would normally use a list comprehension here; # for simplicity, I'm not results = [] for parameter in parameters: result = do_some_calculation(parameter) results.append(result) return results #…later... x, y, z = somefunction(1, 2, 3) Relevant docs: http://docs.python.org/tutorial/datastructures.html#tuples-and-sequences http://docs.python.org/tutorial/controlflow.html#tut-unpacking-arguments Cheers, Chris -- http://mail.python.org/mailman/listinfo/python-list