>> Two dicts created from the same inputs will return items in the same >> arbitrary order. As long as you don't insert or delete a key you're >> fine. >> > Two dicts that contain the same keys and values may or may not return them > in the same order: > >>>> dict.fromkeys('ia') > {'i': None, 'a': None} >>>> dict.fromkeys('ai') > {'a': None, 'i': None} > > Would your system count those two dicts as the same? > > If the sequence in which the keys were added to the dict (and deleted if > appropriate) is exactly the same then it is likely but still not guaranteed > that they will have the same order. The only ordering guarantee is that > within a single dict keys and values will appear in a consistent order so > long as you don't add/delete keys between calls.
As I said, two dictionaries created from the same input will be the same... 'ai' != 'ia'. If I need to hash a dict that I don't know was created in a deterministic order, I'd frozenset(thedict.items()). Nathan -- http://mail.python.org/mailman/listinfo/python-list