Tri d'un dictionnaire (avec des clés de date) en Python
J'ai un dictionnaire. Les touches sont les dates (datetime). J'ai besoin de trier le dictionnaire de sorte que les valeurs dans le dictionnaire sont triés par date - de sorte qu'en parcourant le dictionnaire, je suis le traitement des éléments dans le bon ordre chronologique (date/heure).
Comment puis-je trier un tel dictionnaire par jour?
Exemple:
mydict = { '2000-01-01': {fld_1: 1, fld_2: 42}, '2000-01-02': {fld_1:23, fld_2: 22.17} }
Note: j'utilise des cordes ici, au lieu de datetime, pour garder l'exemple simple
source d'informationauteur skyeagle
Vous devez vous connecter pour publier un commentaire.
Si vous êtes à l'aide de Python 2.7+ 3,1+ vous pouvez créer une
OrderedDict
parcollections
à partir d'une sorte de votre dictionnaire et puis itérer sur que.Toutefois, en fonction de ce que vous voulez faire, il est probablement plus facile d'itérer sur une liste triée des clés de votre dict.
Dictionnaires ne rien stocker dans un certain ordre. Mais vous pouvez obtenir une liste de clés à l'aide de
d.keys()
qui pourrait être triés. Itérer sur un générateur comme ci-dessous.En utilisant cela, vous serez en mesure d'effectuer une itération sur les valeurs dans l'ordre chronologique.
Dictionnaires sont unsortable. Itérer sur
sorted(mydict.keys())
à la place.Je suis sûr que python sait comment comparer des dates. Donc:
depuis votre date de chaînes semblent être dans un format approprié, vous pourriez faire:
Python 2.7 (publié le 3 juillet 2010) prend en charge un ordre type de dictionnaire:
http://www.python.org/download/releases/2.7/