Dict when defining not returning multi value key error

Ian Kelly ian.g.kelly at gmail.com
Thu Jul 31 17:16:55 EDT 2014


On Thu, Jul 31, 2014 at 1:17 PM, Terry Reedy <tjreedy at udel.edu> wrote:
> 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.

I don't know either, but I think that it's generally expected that the
above would be equivalent to:

p = dict()
p['k'] = "value0"
p['k'] = "value1"

which of course will not throw an error since you're just updating the
value in that case.



More information about the Python-list mailing list