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 <st...@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. > > > > an_empty_set = {} > > an_empty_dictionary = {:} > > > > 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@python.org > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > https://mail.python.org/mailman/options/python-dev/mertz%40gnosis.cx >
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com