我正在尝试对某些内容进行双重排序,但似乎忘记了第一种排序,我认为 python 使用稳定排序,所以我可能犯了一个错误。
原始文本是一个如下所示的数组:
benzene - 30.0 - 15
xylene - 5.0 - 10
benzene - 8.5 - 29
benzene - 0.5 - 11
我想要:
benzene - 0.5 - 11
benzene - 8.5 - 29
benzene - 30.0 - 15
xylene - 5.0 - 10
这是我的代码:
def akey(a):
z = a.split(' -')
v = [z[0]]
x = [str(i) for i in v]
return x
def bkey(b):
z = b.split(' -')
v = [z[1]]
x = [float(i) for i in v]
return x
labelList.sort(key=akey)
labelList.sort(key=bkey)
感谢您的帮助
最佳答案
为什么你不尝试先输入 bkey,然后再输入 akey
基本上你有两个优先级来对它们进行排序...最左边的优先级更高。因此,如果您从右侧开始排序,您将得到您想要的结果。
关于Python 双重排序与分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18775949/