else condition in list comprehension

Nick Coghlan ncoghlan at iinet.net.au
Wed Jan 12 11:32:25 CET 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?
> 

Hmm:

z = [newval(i) for i in range(10)] using:
     def newval(x):
         if x % 2:
             return x - 2
         else:
             return x + 2

Just some more mental twiddling relating to the thread on statement local 
namespaces.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at email.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://boredomandlaziness.skystorm.net



More information about the Python-list mailing list