J'ai ce tableau:
a = [{'id': 2, 'date': '2020-01-25'}, {'id': 3, 'date': '2020-01-26'}, {'id': 3, 'date'; '2020-01-31'}]
Je voudrais le commander par date comme ça:
a = [{'id': 1, 'date: '2020-01-31'}, {'id': 2, 'date': '2020-01-25'}, {'id': 3, 'date': '2020-01-26'}]
Comment puis-je faire cela pour trier mon tableau comme ça?
Merci beaucoup !
3 Réponses :
Solution la plus simple: utilisez la fonction sorted intégrée et, pour l'argument key par défaut, utilisez une expression lambda pour extraire la date de chaque élément, comme indiqué ci-dessous:
[{'id': 2, 'date': '2020-01-25'}, {'id': 3, 'date': '2020-01-26'}, {'id': 1, 'date': '2020-01-31'}]
Sortie de la console:
a = [
{'id': 1, 'date': '2020-01-31'},
{'id': 2, 'date': '2020-01-25'},
{'id': 3, 'date': '2020-01-26'}
]
a_sorted = sorted(a, key=lambda e: e['date'])
print(a_sorted)
Si vous souhaitez trier le tableau vous-même, vous pouvez utiliser un algorithme de tri, par exemple le tri à bulles ou vous pouvez vérifier ici dans ce lien pour plus d'algorithmes
trié (a, clé = élément lambda: élément ['date'])
si vous avez besoin d'un ordre décroissant
trié (a, clé = élément lambda: élément ['date'], inverse = Vrai)
Est-ce que cela répond à votre question? Comment trier une liste de dictionnaires en fonction d'une valeur du dictionnaire?