else condition in list comprehension

Reinhold Birkenfeld reinhold-birkenfeld-nospam at wolke7.net
Sun Jan 9 16:22:01 EST 2005


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 to be "i-2" if i%2 is not equal to 0?

You'll have to add the condition at the front:

z = [(i+2, i-2)[i%2] for i in range(10)]

should do what you need.

Reinhold



More information about the Python-list mailing list