On Sun, 20 Mar 2005 13:16:37 -0500, "George Sakkis"
<[EMAIL PROTECTED]> wrote:

>I'm sure there must have been a past thread about this topic but I don't know 
>how to find it: How
>about extending the "for <X> in" syntax so that X can include default 
>arguments ? This would be very
>useful for list/generator comprehensions, for example being able to write 
>something like:
>
>[x*y-z for (x,y,z=0) in (1,2,3), (4,5), (6,7,8)]
>
>instead of the less elegant explicit loop version that has to check for the 
>length of each sequence.
>What do you think ?
>
>George
>

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?


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


Ron

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to