[Python-ideas] Ternary operators in list comprehensions
Steven D'Aprano
steve at pearwood.info
Thu Oct 5 13:00:22 EDT 2017
On Thu, Oct 05, 2017 at 05:40:32PM +0200, Jason H wrote:
> >>> 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
[(x if x & 1 else 'even') for x in a]
The if clause in the list comprehension determines which items are
included, and there is no "else" allowed. You don't want to skip any
values: the list comp should have the same number of items as "a"
(namely, 3) the comprehension if clause is inappropriate.
Instead, you want the value in the comprehension to conditionally depend
on x.
By the way, this list is for suggesting improvements and new
functionality to the language, not for asking for help. You should
consider asking your questions on python-list or tutor mailing lists
instead.
--
Steve
More information about the Python-ideas
mailing list