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

如何按长度排序二维/多数组?Python compare_lengths函数实现求助

按数组长度排序数组的实现方法

一、通用排序方法(二维数组/多个独立数组)

在Python中,要按数组长度对二维数组或多个独立数组排序,直接使用内置的sorted()函数并指定key=len即可。key=len表示以每个数组的长度作为排序依据,默认按从小到大的顺序排列:

示例1:二维数组排序

two_d_array = [[5,6,7], [1], [2,3]]
sorted_result = sorted(two_d_array, key=len)
print(sorted_result)  # 输出: [[1], [2,3], [5,6,7]]

示例2:多个独立数组排序

a = [10,20]
b = [30]
c = [40,50,60]
# 先把多个数组存入列表,再排序
sorted_arrays = sorted([a, b, c], key=len)
# 如需返回元组,用tuple()转换
print(tuple(sorted_arrays))  # 输出: ([30], [10,20], [40,50,60])

如果需要降序排列,只需添加reverse=True参数:

sorted_result = sorted(two_d_array, key=len, reverse=True)
print(sorted_result)  # 输出: [[5,6,7], [2,3], [1]]

二、实现compare_lengths函数

针对你需要的compare_lengths(x,y,z)函数,只需把三个输入数组存入列表,用sorted()按长度排序后转为元组返回即可。修改后的完整代码如下:

def compare_lengths(x,y,z):
    # 将三个输入数组放入列表,方便排序
    arrays = [x, y, z]
    # 按数组长度从小到大排序
    sorted_arrays = sorted(arrays, key=len)
    # 转换为三元组返回
    return tuple(sorted_arrays)

tests = [([1,2,3],[10,20,30,40],[65,32,7])]
for x,y,z in tests:
    print(compare_lengths(x,y,z))

代码说明

  1. arrays = [x, y, z]:把三个独立的数组参数存入一个列表,因为sorted()需要处理可迭代对象(比如列表)。
  2. sorted(arrays, key=len):对列表中的数组按长度排序,长度相同的数组顺序不做强制要求(符合题目示例中的两种合法输出)。
  3. tuple(sorted_arrays):将排序后的列表转换为三元组,满足题目返回三元组的要求。

运行上述代码后,会输出([1,2,3], [65,32,7], [10,20,30,40])或([65,32,7], [1,2,3], [10,20,30,40]),两种结果都符合题目要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:01:03