De um comentário:
Eu quero classificar cada conjunto.
Isso é fácil. Para qualquer conjunto s
(ou qualquer outra coisa iterável), sorted(s)
retorna uma lista dos elementos de s
na ordem de classificação:
>>> 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']
Observe que sorted
está dando a você um list
, não um set
. Isso porque todo o objetivo de um conjunto, tanto na matemática quanto em quase todas as linguagens de programação , * é que ele não é ordenado: os conjuntos {1, 2}
e {2, 1}
são o mesmo conjunto.
Você provavelmente não deseja classificar esses elementos como strings, mas como números (então 4,918560000 virá antes de 10.277200999, e não depois).
A melhor solução provavelmente é armazenar os números como números em vez de strings. Mas se não, você só precisa usar uma key
função:
>>> sorted(s, key=float)
['0.000000000', '0.009518000', '0.018384000', '0.030810999', '4.918560000', '10.277200999']
Para mais informações, veja o Sorting HOWTO na documentação oficial.
* Veja os comentários para exceções.