[statement if condition else statement for _ in iterable_object]
#statement are without assignment
# if/else
[f(x) if condition(x) else '' for x in sequence]
l = [22, 13, 45, 50, 98, 69, 43, 44, 1]
a = [x + 1 if x >= 45 else x + 5 for x in l]
[f(x) if condition else g(x) for x in sequence]
>>> l = [1, 2, 3, 4, 5]
>>> ['yes' if v == 1 else 'no' if v == 2 else 'idle' for v in l]
['yes', 'no', 'idle', 'idle', 'idle']
[unicode(x.strip()) if x is not None else '' for x in row]
In general,
[f(x) if condition else g(x) for x in sequence]
And, for list comprehensions with if conditions only,
[f(x) for x in sequence if condition]
[<Exp1> if condition else <Exp2> if condition else <Exp3> for <item> in <iterable>]