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

如何按子数组指定元素与0的接近程度排序二维数组

按子数组元素与0的接近程度排序二维数组

你需要根据子数组第三个元素与0的距离(绝对值大小)来排序,原代码的lambda x: x[2]是按元素本身的数值排序,而非到0的距离,所以不符合需求。

正确的做法是将key函数改为取第三个元素的绝对值,因为绝对值直接反映了该数与0的接近程度:

i = [[1,3,8],[1,7,4],[1,9,1],[1,0,3],[1,11,-2]]
sorted_i = sorted(i, key=lambda x: abs(x[2]))
print(sorted_i)

运行后输出结果正好是你想要的:
[[1,9,1],[1,11,-2],[1,0,3],[1,7,4],[1,3,8]]

补充说明

如果遇到两个元素绝对值相同的情况(比如2和-2),Python的sorted是稳定排序,会保留它们在原数组中的相对顺序。如果需要额外的排序规则(比如绝对值相同时,负数排在正数前),可以将key改为元组:

sorted_i = sorted(i, key=lambda x: (abs(x[2]), x[2]))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:30:51