好吧,我有这样的列表(只是一个数据的样本):在检查字符串或浮点数时按键排序Python列表?
data = {"NAME": "James", "RANK": "3.0", "NUM": "27.5" ... }
现在,如果我跑是这样的:
sortby = "NAME" //this gets passed to the function, hence why I am using a variable sortby instead
data.sort(key=itemgetter(sortby))
我得到的所有字符串进行排序正确 - 按字母顺序。
然而,当“sortby”是任何浮动值(RANK或NUM或任何其他),排序再次完成后,按字母顺序排列,而不是数字的,所以我的排序列表看起来是这样的,那么:
0.441 101.404 107.558 107.558 108.48 108.945 11.195 12.143 12.801 131.73
这显然是错误的。现在,我该如何做一个这样的排序(在速度和资源/计算方面最有效率),但是当它是一个浮点数时,它会将浮点值转换为浮点数,并且当它是一个浮点数时将其保留为一个字符串字符串...可能吗?不,删除列表中的浮点值引号不是一个选项 - 我无法控制源列表,不幸的是(我知道,这将是一个简单的解决方案)。
我喜欢这样的......从来没有想过用于排序类型的单独字典。谢谢!唯一的问题是,有50列我需要投这样的浮动,但它是迄今为止最流畅的方法... – 2009-07-06 18:21:16
检查我的答案,不需要单独的字典。这是一个很好的答案,但是您必须设置50条字典...... – 2009-07-06 18:33:10