"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