On 9/15/2017 3:36 PM, Tim Chase wrote:
Looking through docs, I was unable to tease out whether there's a
prescribed behavior for the results of defining a dictionary with the
same keys multiple times

   d = {
      "a": 0,
      "a": 1,
      "a": 2,
       }

In my limited testing, it appears to always take the last one,
resulting in

   {"a": 2}

as if it iterated over the items, adding them to the dict, tromping
atop any previous matching keys in code-order.

Is this guaranteed by the language spec,

https://docs.python.org/3/reference/expressions.html#dictionary-displays
If a comma-separated sequence of key/datum pairs is given, they are evaluated from left to right to define the entries of the dictionary: each key object is used as a key into the dictionary to store the corresponding datum. This means that 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.

 or do I have a long weekend
of data-cleaning ahead of me?  (this comes from an unwitting coworker
creating such dicts that mung customer data, and I am trying to
determine the extent of the damage...whether it's a consistent issue
or is at the arbitrary whims of the parser)

Thanks,

-tkc






--
Terry Jan Reedy


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to