CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[python] trier un dictionnaire ou une liste par date

Kickme
Kickme
Niveau 26
18 mars 2018 à 09:29:55

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.

Blaff11
Blaff11
Niveau 10
18 mars 2018 à 15:02:59

Salut. :ok:

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. :-)))

Message édité le 18 mars 2018 à 15:04:24 par Blaff11
Kickme
Kickme
Niveau 26
18 mars 2018 à 16:48:35

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 :)

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware