Hagen Fürstenau wrote:
Code with any dependence on the iteration order of unordered collections
(other than the guarantee that d.keys() and d.values() match at any
given time as long as d is unchanged) is buggy.

It's not a matter of dependence on iteration order, but of
reproducibility (in my case there were minor numerical differences due
to different iteration orders).

If those differences are insignificant to you, then why do you care?

If they are significant enough that (say) tests were failing, then your results depend on the iteration order of a set, and your code is buggy and should be fixed. Or perhaps your tests are too strict.


I think we also warn about changes in
pseudorandom number sequences, although you could argue that no code
should depend on specific pseudorandom numbers.

The random module provides an API for repeating sequences of pseudorandom numbers: the seed. So you *can* depend on specific numbers, if you need to.

Sets and dicts do not provide any such API. The order even changes with the history of the object: two equal sets can have different iteration orders.

Personally, I don't care whether or not we mention that set iteration order has changed. It seems too trivial to worry much about it.

+0



--
Steven

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to