On Sat, Oct 8, 2016 at 6:01 AM, Serhiy Storchaka firstname.lastname@example.org wrote:
Since dict is ordered in CPython 3.6, it can be used instead of OrderedDict in some places (e.g. for implementing simple limited caches). But since this is implementation detail, it can't be used in the stdlib unconditionally. Needed a way to check whether dict is ordered.
Actually there are two levels of "ordering".
- Dict without deletions is iterated in the order of adding items.
Raymond's original compact dict implementation satisfied this claim.
- In addition the order is preserved after deletion operations. Naoki's
implementation satisfies this more strong claim.
Sidenote: OrderedDict, unlike dict, is a sequential container (though not a Sequence), so order matters when doing comparisons, and OrderedDicts can be reverse-iterated. That might keep dict from replacing OrderedDict in some cases. Something to keep in mind if this topic is revisited.