Luis M. Gonzalez wrote:
Hi there,
I'd like to know if there is a way to add and else condition into a list comprehension. I'm sure that I read somewhere an easy way to do it, but I forgot it and now I can't find it...
for example: z=[i+2 for i in range(10) if i%2==0] what if I want i [sic] to be "i-2" if i%2 is not equal to 0?
z = [i + (2, -2)[i % 2] for i in range(10)]
For the specific case of +/- a number, (-1) ** x works, too:
z = [i + 2 * ((-1) ** i) for i in range(10)]
Not that I'm claiming it's particularly readable or anything. . . just that it works :)
Cheers, Nick.
-- Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia --------------------------------------------------------------- http://boredomandlaziness.skystorm.net -- http://mail.python.org/mailman/listinfo/python-list