Is there a clever way to pass arguments
bruceg113355 at gmail.com
bruceg113355 at gmail.com
Wed Aug 8 21:20:40 EDT 2012
On Wednesday, August 8, 2012 9:07:04 PM UTC-4, Dave Angel wrote:
> On 08/08/2012 08:41 PM, bruceg113355 at 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
More information about the Python-list
mailing list