On Wednesday, August 8, 2012 9:07:04 PM UTC-4, Dave Angel wrote: > On 08/08/2012 08:41 PM, bruceg113...@gmail.com wrote: > > > Is there a way in Python to pass arguments without listing each argument? > > > For example, my program does the following: > > > > > > testData (z[0], z[1], z[2], z[3], z[4], z[5], z[6], z[7]) > > > > > > Is there a clever way to pass arguments in a single statement knowing that > > each argument is a sequential index from a list? > > > I cannot change the function definition. > > > > > > Thanks, > > > Bruce > > If a function is expecting exactly 8 arguments, and z is a list of > > length 8, you can call the function like: > > > > testData(*z) > > > > if z is longer, then you'd need something like (untested) > > testData(*z[:8]) > > > > The * basically turns a list into separate arguments, and these are then > > applied to the formal parameters. > > > > -- > > > > DaveA
Dave, your solution works! def testData (z0, z1, z2, z3, z4, z5, z6, z7): print (z0, z1, z2, z3, z4, z5, z6, z7) z = [] z.append(0) z.append(1) z.append(2) z.append(3) z.append(4) z.append(5) z.append(6) z.append(7) testData(*z[:8]) Thank you, Bruce -- http://mail.python.org/mailman/listinfo/python-list