Supposons que j'ai un dictateur.
data = {1:'b', 2:'a'}
Et je veux trier les données par 'b' et 'a' pour obtenir le résultat suivant
'a','b'
Comment je fais ça ?
Des idées ?
Supposons que j'ai un dictateur.
data = {1:'b', 2:'a'}
Et je veux trier les données par 'b' et 'a' pour obtenir le résultat suivant
'a','b'
Comment je fais ça ?
Des idées ?
Pour obtenir les valeurs, utilisez
sorted(data.values())
Pour obtenir les clés correspondantes, utilisez un key
fonction
sorted(data, key=data.get)
Pour obtenir une liste de tuples ordonnés par valeur
sorted(data.items(), key=lambda x:x[1])
Voir la discussion ici : Les dictionnaires sont ordonnés dans Python 3.6+.
Si vous voulez réellement trier le dictionnaire au lieu de simplement obtenir une liste triée, utilisez collections.OrderedDict
>>> from collections import OrderedDict
>>> from operator import itemgetter
>>> data = {1: 'b', 2: 'a'}
>>> d = OrderedDict(sorted(data.items(), key=itemgetter(1)))
>>> d
OrderedDict([(2, 'a'), (1, 'b')])
>>> d.values()
['a', 'b']
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.