You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中按首个元素降序排序含无逗号配对的列表?

Python 按配对首个元素降序排序列表

给定列表:

original_list = ['8 4', '4 3', '15 8', '10 5', '']

需要按每个非空配对的首个元素降序排序,同时保留空字符串在末尾,预期输出:

['15 8', '8 4', '10 5', '4 3', '']

实现方法

使用Python内置的sorted()函数,结合自定义排序键即可完成:

original_list = ['8 4', '4 3', '15 8', '10 5', '']
sorted_list = sorted(original_list, key=lambda x: int(x.split()[0]) if x else -float('inf'), reverse=True)
print(sorted_list)

代码说明

  • 自定义排序键:通过lambda函数为每个元素生成排序依据:
    • 非空元素:用split()分割字符串,取第一个部分转为整数,以此作为排序键
    • 空字符串:返回-float('inf')(负无穷),在降序排序时会被排在所有正整数之后
  • reverse=True:开启降序排序,让数字大的配对排在前面

运行代码后即可得到预期的排序结果。

内容的提问来源于stack exchange,提问作者pynovice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 01:05:19