[x if x & 1 else 'even' for x in a] An `if` at the end of the comprehension means a condition on whether to include the value.
Also, this question would have been better asked on python-list. 2017-10-05 8:40 GMT-07:00 Jason H <jh...@gmx.com>: > >>> 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? > _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/