One-line list comprehension: if-else variants

It’s more about python list comprehension syntax. I’ve got a list comprehension that produces list of odd numbers of a given range:

[x for x in range(1, 10) if x % 2]

This makes a filter – I’ve got a source list, where I remove even numbers (if x % 2). I’d like to use something like if-then-else here. Following code fails:

>>> [x for x in range(1, 10) if x % 2 else x * 100]
  File "<stdin>", line 1
    [x for x in range(1, 10) if x % 2 else x * 100]
                                         ^
SyntaxError: invalid syntax

There is a python expression like if-else:

1 if 0 is 0 else 3

How to use it inside a list comprehension?

6 Answers
6

Leave a Comment