On 5/3/2012 8:36 PM, Peng Yu wrote:
Hi,

list(a_set)

When convert two sets with the same elements to two lists, are the
lists always going to be the same (i.e., the elements in each list are
ordered the same)? Is it documented anywhere?

"A set object is an unordered collection of distinct hashable objects".
If you create a set from unequal objects with equal hashes, the iteration order may (should, will) depend on the insertion order as the first object added with a colliding hash will be at its 'natural position in the hash table while succeeding objects will be elsewhere.

Python 3.3.0a3 (default, May  1 2012, 16:46:00)
>>> hash('a')
-292766495615408879
>>> hash(-292766495615408879)
-292766495615408879
>>> a = {'a', -292766495615408879}
>>> b = {-292766495615408879, 'a'}
>>> list(a)
[-292766495615408879, 'a']
>>> list(b)
['a', -292766495615408879]

--
Terry Jan Reedy

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

Reply via email to