Dict when defining not returning multi value key error

Terry Reedy tjreedy at udel.edu
Thu Jul 31 21:17:53 CEST 2014

On 7/31/2014 7:24 AM, Dilu Sasidharan wrote:

> I am wondering why the dictionary in python not returning multi value
> key error when i define something like
> p = {'k':"value0",'k':"value1"}

This is documented behavior: "you can specify the same key multiple 
times in the key/datum list, and the final dictionary’s value for that 
key will be the last one given." I am not sure whether this is an 
accident of the initial design, never changed since, or intended for 
certain uses.  It may partly be because this choice is slightly simpler 
or, since keys are expressions, not constants, that the check can only 
come at runtime.

 >>> def f(x): return 0

 >>> {f(1):1, f(2):2}
{0: 2}

Terry Jan Reedy

More information about the Python-list mailing list