Python 对百分比列表排序

Python 对百分比列表排序,python,list,sorting,Python,List,Sorting,我有以下清单: l = ['50%','12.5%','6.25%','25%'] 我想按以下顺序对其进行排序: ['6.25%','12.5%','25%','50%'] 使用l.sort()可以生成: 用Python轻松排序这些列表有什么妙招吗?您可以使用自定义键进行排序 b =['52.5%', '62.4%', '91.8%', '21.5%'] b.sort(key = lambda a: float(a[:-1])) 这将引用集合,但使用数值作为键(即字符串中“%”的切块并转换

我有以下清单:

l = ['50%','12.5%','6.25%','25%']
我想按以下顺序对其进行排序:

['6.25%','12.5%','25%','50%']
使用l.sort()可以生成:


用Python轻松排序这些列表有什么妙招吗?

您可以使用自定义键进行排序

b =['52.5%', '62.4%', '91.8%', '21.5%']
b.sort(key = lambda a: float(a[:-1]))

这将引用集合,但使用数值作为键(即字符串中“%”的切块并转换为浮点。

将数据存储为数字而不是字符串!-取决于您对数据执行的其他操作,但需要在输入时转换为数字,在输出时转换为数字可能比多次转换的成本更低对不起,打印错误。这些情况会发生:)啊,酷-它几乎成功了。我必须做a:b.sort(key=lambda:float(str(a[:-1]))才能使它完全正常工作。不,不,再检查一遍。对不起,在我半睡眠状态下,我写了“str”而不是“float”。对不起:)
b =['52.5%', '62.4%', '91.8%', '21.5%']
b.sort(key = lambda a: float(a[:-1]))