Bonjour,
j'ai un dictionnaire qui ressemble a ça :
dict = {'10/02': 'test', '20/02': 'test2', '09/02': 'test3'}
et j'aimerai pouvoir récupérer ce dict mais en ayant trier les keys (donc les dates), j'ai fait des recherches et test 2-3 trucs mais je n'ai pas réussi.
A savoir que je peux utiliser une list qui donnerait ça :
liste = ['10/02 test', '20/02 test2', '09/02 test3']
Donc pareil j'aimerai trier les valeurs en utilisant seulement les dates (donc ignorer les test,test2 etc).
Bon pour le moment j'ai pu contourner le problème en mettant tout ça dans une table html et en triant ça depuis la mais j'aimerais pouvoir le faire directement dans mon code python.
Si vous avez une solution Merci.
Salut.
Pour récupérer la liste des clés de ton dictionnaires :
dates = dct.keys()
Pour la trier:
sorted_dates = sorted(dates)
Pour récupérer les valeurs correspondantes :
tests = [dct[date] for date in sorted_dates]
Cette façon de construire une liste se nomme "par compréhension".
Tu devrais aussi éviter de nommer tes variables avec des noms de built-in (ça s'appelle du "shadowing", en l’occurrence du built-in dict
).
Le tri peut poser problème avec les chaînes de caractères, vu que 20/02 arrivera après 10/03. Si tu peux, fais en sorte que le mois précède le jour. Sinon, tu peux utiliser :
from datetime import datetime
sorted_dates = sorted(dates, key=lambda d: datetime.strptime(d, "%d/%m"))
Bon courage.
Merci Blaff11, ta solution a fonctionné comme je le voulais
Tu devrais aussi éviter de nommer tes variables avec des noms de built-in (ça s'appelle du "shadowing", en l’occurrence du built-in dict).
d'accord merci