[Python-ideas] dictionary constructor should not allow duplicate keys

Terry Reedy tjreedy at udel.edu
Wed May 4 21:49:47 EDT 2016


On 5/3/2016 11:31 PM, Chris Angelico wrote:
> On Wed, May 4, 2016 at 1:23 PM, Terry Reedy <tjreedy at udel.edu> wrote:
>> Why single out just one to raise an exception?  My guess is that it is
>> partly from mistakenly thinking of the one as a like a lexer literal rather
>> than as runtime code.

This was a preface to the main points that followed, and which were 
snipped from this followup.

> But the lexer's definition of "literal" is extremely narrow, and
> doesn't reflect the way people think about them. Most people's idea of
> a literal is closer to what ast.literal_eval can accept:
[snip]

I am obviously aware of that. My main point, not addressed by this 
response, is that 1. dict displays are currently equivalence to several 
forms of Python code with more explicit looping, including at least two 
that are commonly used to initialize dicts; and 2. that changing the 
semantics of dict displays and only dict displays will break this 
equivalence.

In my response just not to Nick, I was more explicit that breaking this 
equivalence now, after 20+ years, will break code that depends on the 
current equivalence and break people's currently true expectations.

-- 
Terry Jan Reedy




More information about the Python-ideas mailing list