2015-12-28 2 views
-2

OrderedDict est une collection qui préserve l'ordre des éléments (dans lequel ils ont été insérés). Je ne pense pas que cela puisse être réalisé avec des tables de hachage (que les dictées régulières utilisent je pense), donc les arbres équilibrés sont-ils utilisés pour l'implémenter?Est-ce que OrderedDict est un arbre?

Je suppose qu'il y en a beaucoup dépend comme Python 2/3 et CPython/IPython/autres.

+0

ouais, il y a beaucoup de documentation python en ligne. – Untitled123

+0

J'ai trouvé beaucoup de questions sur la dict régulière étant une hashtable mais rien sur OrderedDict. – ArekBulski

+1

Il peut être réalisé avec une hashtable associée à une liste ordonnée, telle qu'une liste chaînée. – khelwood

Répondre

4

Vous pouvez lire l'implémentation dans le code source de CPython: Lib/collections/__init__.py car OrderedDict est implémenté en Python.

Il utilise une liste doublement chaînée pour maintenir l'ordre des éléments dans le dictionnaire.