2010-10-12 26 views

Répondre

4

Django fournit une classe SortedDict, qui a la même fonctionnalité. Si vous utilisez django, vous pouvez simplement utiliser from django.utils.datastructures import SortedDict.

Même si vous n'utilisez pas django, vous pouvez toujours tirer parti de cette implémentation. Obtenez simplement le fichier datastructures.py de la source django et enregistrez-le quelque part importable.

http://code.djangoproject.com/browser/django/trunk/django/utils/datastructures.py

+0

'SortedDict' est un abus de langage - il maintient l'ordre d'insertion et ne trie pas, par exemple, par la touche dict. C'est plus comme 'OrderedDict'. Voir aussi http://pypi.python.org/pypi/ordereddict qui peut également être déposé. – user650654

0

vous pouvez trier une liste dict.items() (de tuples) .. ne peut pas?

0

OrderedDict est nouveau dans la version 2.7, donc non, il n'y a pas de façon intégrée de le faire - vous devrez implémenter le vôtre.

Habituellement, un dictionnaire ordonné est implémenté comme un dictionnaire de nœuds de liste liée, liés dans l'ordre de traversée. Cela devrait être assez simple pour vous implémenter.