On 12/23/19 8:09 PM, Kyle Stanley wrote:

Chris Angelico wrote:
> I think this is an artifact of Python not having an empty set literal.
> [snip]
> When both use the constructor call or both use a literal, the
> difference is far smaller. I'd call this one a wash.

Ah, good catch. I hadn't considered that it would make a substantial difference, but that makes sense. Here's an additional comparison between "{}"  and "dict()" to confirm it:

>>> timeit.timeit("{}", number=100_000_000)
2.1038335599987477
>>> timeit.timeit("dict()", number=100_000_000)
10.225583500003268


We could also go the other way with it, set / dict-map-to-dontcare with one element, because that way we /can/ have a set literal:

    >>> timeit.timeit("set()", number=100_000_000)
   8.579900023061782
    >>> timeit.timeit("dict()", number=100_000_000)
   10.473437276901677
    >>> timeit.timeit("{0}", number=100_000_000)
   5.969995185965672
    >>> timeit.timeit("{0:0}", number=100_000_000)
   6.24465325800702

(ran all four of those just so you see a relative sense on my laptop, which I guess is only sliiiightly slower than Kyle's)


Happy holidays,


//arry/

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

Reply via email to