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

无需Numpy:如何对Python二维列表实现多规则排序?

对二维列表按指定列排序的实现方案

你可以直接用Python内置的sort()或sorted()函数,通过指定key参数来实现需求,而且针对元组的排序方案完全适用于二维列表——因为二维列表的子列表和元组一样是可索引的序列,排序逻辑通用。

实现代码

方式1:原地排序(修改原列表)

lst = [[9,3,4],
       [8,4,2],
       [4,2,4]]

# 按第3列升序,第3列相同则按第1列升序排序
lst.sort(key=lambda x: (x[2], x[0]))
print(lst)
# 输出结果:
# [[8, 4, 2], [4, 2, 4], [9, 3, 4]]

方式2:非原地排序(生成新列表,原列表不变)

如果不想修改原列表,用sorted()函数生成排序后的新列表:

lst = [[9,3,4],
       [8,4,2],
       [4,2,4]]

sorted_lst = sorted(lst, key=lambda x: (x[2], x[0]))
print(sorted_lst)
# 输出结果和上面一致

逻辑说明

  • key=lambda x: (x[2], x[0])是核心:
    1. x[2]对应子列表的第3列元素,排序时优先按这个值升序排列;
    2. 当多个子列表的x[2]值相同时,会比较x[0](第1列元素),按其升序排列,正好符合你的需求。
  • 这种方式完全不需要依赖Numpy,纯Python内置函数就能搞定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:45:46