D'un commentaire:
Je veux trier chaque ensemble.
C'est facile. Pour tout ensemble s
(ou toute autre chose itérable), sorted(s)
renvoie une liste des éléments de s
dans l'ordre de 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
est de vous donner un list
, pas set
. C'est parce que le point entier d'un ensemble, à la fois dans mathematics et dans almost every programming language, * est qu'il n'est pas commandé: les ensembles {1, 2}
et {2, 1}
sont le même ensemble.
Vous ne voulez probablement pas vraiment pour trier ces éléments comme des chaînes, mais comme des nombres (donc 4,918560000 viendra avant 10,277200999 plutôt qu'après).
La meilleure solution est la plus susceptible de stocker les nombres sous forme de nombres plutôt que de chaînes en premier lieu. Mais sinon, il vous suffit d'utiliser une fonction key
:
>>> sorted(s, key=float)
['0.000000000', '0.009518000', '0.018384000', '0.030810999', '4.918560000', '10.277200999']
Pour plus d'informations, consultez le Sorting HOWTO dans les documents officiels.
* Voir les commentaires pour les exceptions.
Qu'est-ce que les tuples ont à faire avec le problème et qu'avez-vous essayé? –
Je ne pense pas que les ensembles python aient un concept de commande. Cela peut vous aider: http://stackoverflow.com/questions/1653970/does-python-have-an-ordered-set – zallarak
un ensemble est sans ordre. c'est l'une de ses propriétés. dans toutes les langues. utilisez une 'liste'. –