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

如何按x值对含多元素的嵌套列表实现升序与降序排序?

解决嵌套列表按x值排序的问题

核心思路

要实现按子列表中x=xx的数值排序,关键是通过key参数提取每个子列表对应的x值作为排序依据:

  • 遍历子列表元素,筛选出以x=开头的字符串
  • 从该字符串中提取数字部分并转为整数,作为排序的判断基准

从小到大排序代码

original_list = [["bla","blabla","x=17"],["bla","x=13","z=13","blabla"],["x=27","blabla","bla","y=24"]]

# 升序排序
sorted_asc = sorted(original_list, key=lambda sublist: int(next(s.split('=')[1] for s in sublist if s.startswith('x='))))
print(sorted_asc)

输出结果:

[["bla","x=13","z=13","blabla"],["bla","blabla","x=17"],["x=27","blabla","bla","y=24"]]

从大到小排序代码

只需在sorted()中添加reverse=True参数即可实现降序:

# 降序排序
sorted_desc = sorted(original_list, key=lambda sublist: int(next(s.split('=')[1] for s in sublist if s.startswith('x='))), reverse=True)
print(sorted_desc)

输出结果:

[["x=27","blabla","bla","y=24"],["bla","blabla","x=17"],["bla","x=13","z=13","blabla"]]

代码说明

  • next(s.split('=')[1] for s in sublist if s.startswith('x=')):遍历子列表,定位到x=开头的字符串,分割后提取数值部分
  • 转为int是为了确保按数字大小排序,而非字符串的字典序
  • sorted()函数不会修改原列表,会返回新的排序后的列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:01:16