我试图对某些东西进行双重排序,但它似乎忘记了第一个排序,我认为python使用稳定排序,所以我可能犯了一个错误。在
原始文本是一个如下所示的数组:
benzene - 30.0 - 15
xylene - 5.0 - 10
benzene - 8.5 - 29
benzene - 0.5 - 11
我想要:
^{pr2}$这是我的代码:
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放在一起
基本上你有两个优先顺序来排序。。。你最左边的人优先。所以如果你从右边开始排序,你会得到你想要的结果。在
可以通过拆分将每个字符串转换为列表,然后按标准方式对这些列表进行排序:
正如@NullUserException所说,您不能分两步进行排序,因为第二步将只根据中间列进行重组,而忽略第一列(str)。在
在适当转换数据后,您可以一次性完成排序,而且不必担心键:
另一种方法:如果输入数据重组需要大量操作,则使用lambda键可能是更简单的方法:
^{pr2}$相关问题 更多 >
编程相关推荐