[Python-Dev] Check dict implementation details (original) (raw)
Franklin? Lee leewangzhong+python at gmail.com
Sun Oct 9 19:44:29 EDT 2016
- Previous message (by thread): [Python-Dev] Check dict implementation details
- Next message (by thread): [Python-Dev] Optimizing list.sort() by checking type in advance
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sat, Oct 8, 2016 at 6:01 AM, Serhiy Storchaka <storchaka at gmail.com> 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". 1. Dict without deletions is iterated in the order of adding items. Raymond's original compact dict implementation satisfied this claim. 2. 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.
- Previous message (by thread): [Python-Dev] Check dict implementation details
- Next message (by thread): [Python-Dev] Optimizing list.sort() by checking type in advance
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]