On Thu, 2007-05-10 at 01:25 +0000, Alan Isaac wrote: > Did this thread not demonstrate that even sophisticated users > do not see into this "implication" immediately?
Knowing that maps don't have reproducible ordering is one thing. Realizing that that's the cause of the problem that's arbitrarily and wrongly attributed to the 'random' module, in a piece of code that's not posted to the public, and presumably not trimmed down to the shortest possible example of the problem, is quite another. I'll venture the guess that most Python programmers with a modicum of experience will, when asked point blank if it's safe to rely on a dictionary to be iterated in a particular order, answer no. > Replicability > of results is a huge deal in some circles. Every software engineer wants their results to be replicable. Software engineers also know that they can only expect their results to be replicable if they use deterministic functions. You wouldn't expect time.time() to return the same result just because you're running the same code, would you? > I think the docs > for sets and dicts should include a red flag: do not use > these as iterators if you want replicable results. It does, at least for dicts: "Keys and values are listed in an arbitrary order." If this wording is not present for sets, something to this effect should be added. Regards, -- Carsten Haese http://informixdb.sourceforge.net -- http://mail.python.org/mailman/listinfo/python-list