"Ron" <[EMAIL PROTECTED]> wrote:
> How would this examples work?
>
> for x=5,y,z in (123),(4,5),(6,7,8,9)
>
> Would the x default over ride the first value?
> Should, the 4 element in the third tuple be dropped without an error?
It has already been clarified twice in the thread that the default values would
be allowed *only in
the end*, exactly as default function arguments.
> A general reusable function might be something like this:
>
> def formatlistofargs(arglist, nargs=1, defvalue=0):
> returnvalues = []
> for i in arglist:
> ii = list(i)
> while len(ii)<nargs:
> ii.append(defvalue)
> ii=ii[:nargs]
> returnvalues.append(ii)
> return returnvalues
>
> for x,y,z in formatlistofargs(((1,2,3),(3,4),(5,6,7,8)),3):
> print x,y,z
Of course there are ways to have a function fill in the defaults, but
syntactically I would find
"for (x,y,z=0) in (1,2,3), (4,5), (6,7,8): print x,y,z" more obvious and
concise.
By the way, I don't think it's a good idea in general to drop the extra values
implicitly, as you do
in your recipe, for the same reason that calling a function foo(x,y,z) as
foo(1,2,3,4) is an error.
A generalization of the 'for .. in' syntax that would handle extra arguments
the same way as
functions would be:
for (x,y,z=0,*rest) in (1,2,3), (3,4), (5,6,7,8):
print x, y, z, rest
I'd love to see this in python one day; it is pretty obvious what it would do
for anyone familiar
with function argument tuples.
George
--
http://mail.python.org/mailman/listinfo/python-list