Je suis nouveau sur Python, et j'utilise Google App Engine, qui exécute actuellement uniquement Python 2.5. Existe-t-il des moyens intégrés de faire un dictionnaire ordonné, ou dois-je mettre en œuvre quelque chose de personnalisé?Possibilité de faire un dictionnaire ordonné en python 2.5 (en raison de GAE)?
Répondre
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
vous pouvez trier une liste dict.items()
(de tuples) .. ne peut pas?
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.
'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