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

如何用Python实现与JavaScript相同的二维数组自定义排序?

在Python中实现相同的二维数组排序逻辑

先明确你提供的JavaScript代码里的排序规则:

  • 优先按子数组的第一个元素升序排列
  • 当两个子数组的第一个元素相等时,按照b[1] - 2*a[1] + 3的结果决定顺序:结果为正则b排在a前,结果为负则a排在b前,结果为0则顺序不变

在Python中,我们可以借助functools.cmp_to_key将自定义比较函数转换为排序可用的key,实现完全一致的逻辑:

from functools import cmp_to_key

a = [[-1, 5], [3, 2], [-25, 1], [12, 3], [12, 1]]

def compare(a, b):
    if a[0] != b[0]:
        # 对应JS中按第一个元素升序的逻辑
        return a[0] - b[0]
    else:
        # 对应JS中第一个元素相等时的排序规则
        return b[1] - 2 * a[1] + 3

a.sort(key=cmp_to_key(compare))
print(a)

运行后得到的结果和JavaScript代码执行结果完全一致:
[[-25, 1], [-1, 5], [3, 2], [12, 1], [12, 3]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 01:03:03