On Fri, Dec 24, 2021 at 10:22:29AM -0000, Stefan Pochmann wrote:
> Chris Angelico wrote:

> > Here's the equivalent as a list comprehension, which I think looks
> > better than either of the above:
> > [x + 1 for x in [1,2,3] if x % 2 == 0]
> 
> That's not equivalent. You produce [3] instead of [2, 4]. So you 
> rather proved that the proposal does have merit, as it's apparently 
> easy to get the list comprehension wrong.
> 
> Actually equivalent list comprehension:  
> [x for x in [1,2,3] for x in [x + 1] if x % 2 == 0]

Or simpler still:

    [x + 1 for x in [1,2,3] if x % 2 != 0]

Or we can use the mighty walrus:

    [y for x in [1, 2, 3] if (y:=x+1) % 2 == 0]

(although y leaks out of the comprehension).

Using a hypothetical pipeline syntax with an even more hypothetical 
arrow-lambda syntax:

    [1, 2, 3] | map(x=>x+1) | filter(a=>a%2) | list


_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/DE4JWGGLIYV6HG7BUSUTUKU5ZUHOGP6T/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to