else condition in list comprehension
Steve Holden
steve at holdenweb.com
Wed Jan 12 18:36:46 EST 2005
Nick Coghlan wrote:
> 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.
>
I presume the point of this is to avoid polluting the local namespace
with "newval". I further presume you also have plans to do something
about "i"? ;-)
regards
Steve
--
Steve Holden http://www.holdenweb.com/
Python Web Programming http://pydish.holdenweb.com/
Holden Web LLC +1 703 861 4237 +1 800 494 3119
More information about the Python-list
mailing list