D'après un commentaire :
Je veux trier chaque ensemble.
C'est facile. Pour tout ensemble s
(ou tout autre itérable), sorted(s)
renvoie une liste des éléments de s
dans un ordre trié :
>>> s = set(['0.000000000', '0.009518000', '10.277200999', '0.030810999', '0.018384000', '4.918560000'])
>>> sorted(s)
['0.000000000', '0.009518000', '0.018384000', '0.030810999', '10.277200999', '4.918560000']
Notez que sorted
vous donne un list
et non un set
. C'est parce que le but d'un ensemble, à la fois dans mathématiques et en presque tous les langages de programmation ,* est qu'il n'est pas ordonné : les ensembles {1, 2}
y {2, 1}
sont le même ensemble.
Vous ne souhaitez probablement pas trier ces éléments en tant que chaînes de caractères, mais en tant que nombres (ainsi, 4,918560000 viendra avant 10,277200999 plutôt qu'après).
La meilleure solution consiste probablement à stocker les chiffres sous forme de nombres plutôt que de chaînes de caractères. Mais si ce n'est pas le cas, il suffit d'utiliser une balise key
fonction :
>>> sorted(s, key=float)
['0.000000000', '0.009518000', '0.018384000', '0.030810999', '4.918560000', '10.277200999']
Pour plus d'informations, voir le Guide pratique du triage dans les documents officiels.
* Voir les commentaires pour les exceptions.