On Jul 25, 12:00 pm, [EMAIL PROTECTED] wrote: > On Jul 25, 10:46 am, beginner <[EMAIL PROTECTED]> wrote: > > > > > On Jul 25, 10:19 am, Stargaming <[EMAIL PROTECTED]> wrote: > > > > On Wed, 25 Jul 2007 14:50:18 +0000, beginner wrote: > > > > Hi, > > > > > I am wondering how do I 'flatten' a list or a tuple? For example, I'd > > > > like to transform[1, 2, (3,4)] or [1,2,[3,4]] to [1,2,3,4]. > > > > A recursive function, always yielding the first element of the list, > > > could do the job. See the ASPN Python Cookbook for a few > > > implementations.http://aspn.activestate.com/ASPN/search? > > > query=flatten§ion=PYTHONCKBK&type=Subsection > > > > > Another question is how do I pass a tuple or list of all the aurgements > > > > of a function to the function. For example, I have all the arguments of > > > > a function in a tuple a=(1,2,3). Then I want to pass each item in the > > > > tuple to a function f so that I make a function call f(1,2,3). In perl > > > > it is a given, but in python, I haven't figured out a way to do it. > > > > (Maybe apply? but it is deprecated?) > > > >>> def foo(a, b, c): print a, b, c > > > ... > > > >>> t = (1, 2, 3) > > > >>> foo(*t) > > > > 1 2 3 > > > > Have a look at the official tutorial, 4.7.4http://www.python.org/doc/ > > > current/tut/node6.html#SECTION006740000000000000000 > > > > > Thanks, > > > > cg > > > > HTH, > > > Stargaming > > > Hi Stargaming, > > > I know the * operator. However, a 'partial unpack' does not seem to > > work. > > > def g(): > > return (1,2) > > > def f(a,b,c): > > return a+b+c > > > f(*g(),10) will return an error. > > > Do you know how to get that to work? > > > Thanks, > > cg > > As I mentioned, you can access the elements individually using square > brackets. The following works: > > f(g()[0], g()[1], 10) > > But it's not clear. Unfortunately, I'm not seeing much else for tuple > unpacking except the obvious: > > a,b=g() > f(a,b,10) > > Mike
Or if you'd rather write it in one line: f(*(g() + (10,))) George -- http://mail.python.org/mailman/listinfo/python-list