我有这样的价值观:
集合(['0.000000000'、'0.009518000'、'10.277200999'、'0.030810999'、'0.018384000'、'4.918560000')
套装(['4.918859000','0.060758000','4.917336999','0.003949999','0.01394500','10.281522000','0.025082999']))
我想按递增顺序对每个集合中的值进行排序。我不想在两个集合之间排序,而是要对每个集合中的值进行排序
在评论中:
我想把每一套都分类
那很容易。对于任何集合s(或任何其他可编辑的内容),sorted(s)按排序顺序返回s元素的列表:
>&燃气轮机&燃气轮机;s=set(['0.000000000','0.009518000','10.277200999','0.030810999','0.018384000','4.918560000'])
&燃气轮机&燃气轮机&燃气轮机;已分类
['0.000000000', '0.009518000', '0.018384000', '0.030810999', '10.277200999', '4.918560000']
请注意,排序提供的是一个列表,而不是集合。这是因为无论是在数学上还是在几乎所有的编程语言中,集合的全部要点都是它不是有序的:集合{1,2}和{2,1}是同一集合
您可能并不真正希望将这些元素作为字符串进行排序,而是作为数字进行排序(因此4.918560000将出现在10.277200999之前,而不是之后)
最好的解决方案是首先将数字存储为数字而不是字符串。但如果没有,您只需要使用键功能:
>&燃气轮机&燃气轮机;已排序(s,键=浮点)
['0.000000000', '0.009518000', '0.018384000', '0.030810999', '4.918560000', '10.277200999']
有关更多信息,请参见官方文档中的排序方法
*有关例外情况,请参见注释