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

如何使用key参数按绝对值及负数优先规则对列表排序?

实现指定规则的列表排序

直接利用list.sort()方法的key参数,通过返回元组来实现多条件排序:

  • 元组第一个元素为元素的绝对值,确保先按绝对值从小到大排序
  • 元组第二个元素为元素本身,当绝对值相等时,负数(数值更小)会排在正数前面

具体代码如下:

arr = [1,3,-10, -4, 4,10,30, -30]
arr.sort(key=lambda x: (abs(x), x))
print(arr)  # 输出: [1, 3, -4, 4, -10, 10, -30, 30]

原理说明

Python中比较元组时会按顺序逐一比较元素:

  1. 先对比元组的第一个元素(绝对值),绝对值小的排在前面
  2. 当第一个元素相等时,再对比第二个元素(元素本身),由于负数的数值小于正数,所以会被排在前面

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:55:17