I do get what it does, but the phrase in the PEP feels like there is wiggle room: "The new notation listed above is effectively short-hand for the following existing notation."

"Effectively" doesn't quite feel the same as "guaranteed exactly equivalent."


On Mon, Oct 25, 2021, 10:22 PM Chris Angelico <rosuav@gmail.com> wrote:
On Tue, Oct 26, 2021 at 1:10 PM David Mertz, Ph.D.
<david.mertz@gmail.com> wrote:
>
> I like this. I think explicitly discussing order of inclusion would be worthwhile. I know it's implied by the approximate equivalents, but actually stating it would improve the PEP, IMO.
>
> For example:
>
> nums = [(1, 2, 3), (1.0, 2.0, 3.0)]
> nset = {*n for n in nums}
>
> Does 'nset' wind up containing integers or floats? Is this a language guarantee?
>

Easy way to find out: take out the extra nesting level and try it.

>>> nums = [1, 2, 3, 1.0, 2.0, 3.0]
>>> nset = {n for n in nums}
>>> nset
{1, 2, 3}

The *n version would have the exact same behaviour, since it will see
the elements in the exact same order.

ChrisA
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-leave@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/2QCOFW6EEFX2BE24ZOW2G3NUGYVEBQVA/
Code of Conduct: http://python.org/psf/codeofconduct/