what list comprehension can't

Christophe Delord no.spam
Fri Jun 24 15:04:15 EDT 2005


Hello,

On 24 Jun 2005 11:45:14 -0700, ajikoe at gmail.com wrote:

> Hello,
> 
> Can we impose if then else into list comprehension ?
> Like we do in lambda-map form:
> 
> This code change None into 0
> L = [None, 12]
> R = map(lambda x: (x==None and [0] or x)[0], L) # [0,12]
> 

Do you mean:
   [(x==None and [0] or [x])[0] for x in L]
or [{None:0}.get(x,x) for x in L]
or [x or 0 for x in L]

Well, the third solution doesn't exactly fit the specification but may
be easier to read.


Christophe



More information about the Python-list mailing list