Python 双重排序与分割字符串

标签 python string sorting

我正在尝试对某些内容进行双重排序,但似乎忘记了第一种排序,我认为 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/

相关文章:

python - 尝试为用户提供通过调用函数来重新启动程序的机会,但它不起作用

python - 消费者 : Cannot connect to amqp://guest:**@127. 0.0.1:5672//: [Errno 61] 连接被拒绝

javascript - Python vs JavaScript - UTC 时间与序数时间

Python:拆分一个复杂的字符串,包括括号和 |

mysql - 如何在 mySQL 中自定义排序顺序并检查字符串的开头?

c - 通过在c中按字母顺序排序二维字符串数组

python - 如何使用 alpha channel 创建基于调色板的 PNG?

c - 最多 K 个不匹配的子串?

python - 计算字符串中子字符串出现的次数

android - 根据条件对 Spinner 中的值进行排序