我必须对这个 python 列表进行排序:
55.115783, 62.380159, 68.738354, 66.014074, 72.073756, 69.036055, 71.594129, 77.551457, 75.922748, 81.613726, 89.083050, 94.257211, 96.328673 ,102.489464, 111.449678, 118.870730
如果我尝试使用 list.sort() 我得到这个:
102.489464, 111.449678, 118.870730, 55.115783, 62.380159, 66.014074, 68.738354, 69.036055, 71.594129, 72.073756, 75.922748, 77.551457, 81.613726, 89.083050, 94.257211, 96.328673
我真的不知道为什么!!有人可以帮我一下!!
您的值按字符串排序 - 102
vs5
将根据1
字符串中的第一个排序(因此将在 前面排序5
) - 而不是数值。
解决这个问题的最简单方法是在调用中使用该float
函数:key
sorted
>>> a = ['123', '6']
>>> sorted(a)
['123', '6']
>>> sorted(a, key=float)
['6', '123']
该key
参数采用一个函数,该函数将在确定排序值之前应用于每个条目,这将为您提供一个数字值作为排序依据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句