J'ai une liste de dicttes qui ressemblent à ceci i utilisé p> pour les trier cependant, il met en 2019 à le fond. Lorsque j'ajouterai Reverse = true code> il inverse les mois aussi. J'ai essayé d'utiliser Obj ["tournois ']. Trier (Key = Lambda x: Tournoi [' date ']) code>, mais cela revient simplement les dicts dans le même ordre. Je dois retourner la liste des dicttes triés d'ici année 2019, puis triés par mois, puis triés par jour. P> p>
3 Réponses :
Utilisez une clé de tri du format yyyymmdd. (Vos dates sont au format mm-dd-aaaa aaaa aaaa.) donne: p>
@AustinJohnson est la bienvenue. Au fait, l'utilisation d'un tuple au lieu de la concaténation de chaîne fonctionnerait également: (t ["date"] [6:], T ["date"] [: 2], t ["date"] [3: 5]) code>
Les dates sont représentées comme des cordes et triées lexicographiquement. C'est pourquoi, par exemple, Une solution de contournement serait d'analyser les cordes dans '10 -08-2019 ' code> est commandé après '07 -02-2020' code>. DateTime.DateTime code> Objets dans le but de tri du tri. p>
Je vous laisserais à vous de déterminer si vous souhaitez utiliser des pandas pour cette tâche ou non, pendant que je laisse une note sur la façon dont la facilité Vous pouvez visualiser le résultat et le trier avec des pandas. p> La solution d'une ligne est: P> Pandas code> bibliothèque. Maintenant, cela pourrait être discutable car parfois vous n'avez peut-être pas besoin d'apporter des pandas, cependant, cela dépendrait du type de problème / exigence que vous travaillez. Il est souvent plus facile de visualiser et de traiter les données avec des pandas également. P> charge et trier la liste des dictionnaires h2>
obj = {
"Tournaments": [
{
"Scrambling": "61.90",
"Total_Putts_GIR": 85,
"SG_Putting": 0.99,
"Tournament": "Sony_Open",
"Date": "01-09-2020"
},
{
"Scrambling": "68.75",
"Total_Putts_GIR": 93,
"SG_Putting": 1.1,
"Tournament": "Waste_Management",
"Date": "01-30-2020"
},
{
"Scrambling": "64.71",
"Total_Putts_GIR": 70,
"SG_Putting": -0.26,
"Tournament": "WGC_Mexico",
"Date": "02-20-2020"
},
{
"Scrambling": "57.14",
"Total_Putts_GIR": 40,
"SG_Putting": -1.45,
"Tournament": "Charles_Schwab",
"Date": "06-11-2020"
},
{
"Scrambling": "73.68",
"Total_Putts_GIR": 82,
"SG_Putting": 1.65,
"Tournament": "RBC_Heritage",
"Date": "06-18-2020"
},
{
"Scrambling": "66.67",
"Total_Putts_GIR": 92,
"SG_Putting": 0.34,
"Tournament": "Rocket_Mortgage",
"Date": "07-02-2020"
},
{
"Scrambling": "83.33",
"Total_Putts_GIR": 101,
"SG_Putting": 1.19,
"Tournament": "Shriners_Hospital_for_Children_Open",
"Date": "10-08-2019"
}
]
}