How do I convert the following for
-loop containing an if
/else
into a list comprehension?
results = []
for x in xs:
results.append(f(x) if x is not None else '')
It should yield ''
if x
is None
, and otherwise f(x)
.
I tried:
[f(x) for x in xs if x is not None else '']
but it gives a SyntaxError
. What is the correct syntax?
See Does Python have a ternary conditional operator? for info on ... if ... else ...
.
See List comprehension with condition for omitting values based on a condition: [... for x in xs if x cond]
.
See `elif` in list comprehension conditionals for elif
.