[Python-Dev] Sets, Dictionaries (original) (raw)

David Mertz mertz at gnosis.cx
Thu Mar 29 13:11:47 EDT 2018


I agree with everything Steven says. But it's true that even as a 20-year Python user, this is an error I make moderately often when I want an empty set... Notwithstanding that I typed it thousands of times before sets even existed (and still type it when I want an empty dictionary).

That said, I've sort of got in the habit of using the type initializers:

x = set() y = dict() z = list()

I feel like those jump out a little better visually. But I'm inconsistent in my code.

On Thu, Mar 29, 2018, 2:03 AM Steven D'Aprano <steve at pearwood.info> wrote:

Hi Julia, and welcome!

On Wed, Mar 28, 2018 at 09:14:53PM -0700, Julia Kim wrote: > My suggestion is to change the syntax for creating an empty set and an > empty dictionary as following. > > anemptyset = {} > anemptydictionary = {:} > > It would seem to make more sense. Indeed it would, and if sets had existed in Python since the beginning, that's probably exactly what we would have done. But unfortunately they didn't, and {} has meant an empty dict forever. The requirement to keep backwards-compatibility is a very, very hard barrier to cross. I think we all acknowledge that it is sad and a little bit confusing that {} means a dict not a set, but it isn't sad or confusing enough to justify breaking millions of existing scripts and applications. Not to mention the confusing transition period when the community would be using both standards at the same time, which could easily last ten years. Given that, I think we just have to accept that having to use set() for the empty set instead of {} is a minor wart on the language that we're stuck with. If you disagree, and think that you have a concrete plan that can make this transition work, we'll be happy to hear it, but you'll almost certainly need to write a PEP before it could be accepted. https://www.python.org/dev/peps/

Thanks, -- Steve


Python-Dev mailing list Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/mertz%40gnosis.cx -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20180329/0c2aefc8/attachment.html>



More information about the Python-Dev mailing list