[Python-ideas] Ternary operators in list comprehensions
Jason H
jhihn at gmx.com
Thu Oct 5 11:40:32 EDT 2017
>>> a = [1,2,3]
>>> [ x for x in a if x & 1]
[1, 3]
>>> [ x for x in a if x & 1 else 'even']
File "<stdin>", line 1
[ x for x in a if x & 1 else 'even']
^
SyntaxError: invalid syntax
I expected [1, 'even', 3]
I would expect that the if expression would be able to provide alternative values through else.
The work around blows it out to:
l = []
for x in a:
if x&1:
l.append(x)
else:
l.append('even')
Unless there is a better way?
More information about the Python-ideas
mailing list