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

如何用Python 2根据自定义行顺序排序二维锯齿列表?

解决方案

没问题,这个需求用Python的内置函数就能轻松搞定!核心思路是把a的每一行和b中对应的排序优先级绑定,然后按优先级排序,最后提取出行数据即可。

具体步骤如下:

  • 用zip(b, a)将b中的每个优先级值与a中对应的行打包成元组,得到类似(优先级, 行数据)的结构
  • 使用sorted()函数对打包后的元组序列排序,Python默认会按照元组的第一个元素(也就是b里的值)升序排列,正好匹配你想要的顺序
  • 最后通过列表推导式提取每个元组中的行数据,得到排序后的a

完整代码示例:

a = [[73, 74, 93, 97, 147], [5, 11, 12, 47], [987, 988, 989, 990, 991], [15, 16, 17, 22, 71, 988], [15, 16, 17]]
b = [5, 3, 2, 4, 1]

# 执行排序操作
sorted_a = [row for priority, row in sorted(zip(b, a))]

# 验证结果
print(sorted_a)

运行这段代码后,输出的sorted_a就是你期望的结果:

[[15, 16, 17], [987, 988, 989, 990, 991], [5, 11, 12, 47], [15, 16, 17, 22, 71, 988], [73, 74, 93, 97, 147]]

如果之后需要按b的值降序排序,只需要给sorted()添加reverse=True参数即可:

sorted_a_desc = [row for priority, row in sorted(zip(b, a), reverse=True)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:42:54