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

Python如何按每行正偶数元素之和对二维列表的行进行排序

代码错误原因与修正方案

原有代码核心问题

  • findCharacteristicNumber 函数计算完每行的特征和后没有使用return返回结果,调用该函数只能得到None,无法作为排序依据
  • task 函数中错误地循环调用sort方法,且sort的key参数要求传入「接收单个行元素为输入的函数」,而不是直接传入计算好的数值,无需手动遍历所有行

推荐实现方式

我们可以直接针对单一行计算特征和,不需要额外传入矩阵、行号、列数等冗余参数,代码更简洁易读:

def calc_row_score(row):
    # 计算当前行所有大于0的偶数之和
    return sum(num for num in row if num > 0 and num % 2 == 0)

def sort_matrix(matrix):
    # 按行特征和降序排序,sort方法直接修改原矩阵
    matrix.sort(key=calc_row_score, reverse=True)
    return matrix

使用示例

# 测试输入
test_matrix = [
    [3, 2, -4, 6],
    [1, -2, 5, 8],
    [2, 2, 2, -1]
]
# 调用排序
sorted_matrix = sort_matrix(test_matrix)
print(sorted_matrix)
# 输出:[[3, 2, -4, 6], [1, -2, 5, 8], [2, 2, 2, -1]]
# 对应行得分分别为8、8、6,得分相同的行保持原有相对顺序

额外说明

如果需要保留原矩阵不被修改,可以使用sorted函数生成新的排序后矩阵:

sorted_matrix = sorted(original_matrix, key=calc_row_score, reverse=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:27:04