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

请求协助实现matrixToDict函数:将非空矩阵转换为以列索引为键的列表字典

解决矩阵转列索引字典的问题

没问题,我来帮你搞定这个matrixToDict函数的实现!根据你的需求,我们需要把非空矩阵转换成以列索引为键、对应列元素列表为值的字典,哪怕某些列只在部分行里存在。

实现思路

核心思路很清晰:

  1. 先确定矩阵中最长的行长度,这样就能知道需要处理到哪一列索引;
  2. 遍历每一个列索引,收集所有行中该列存在的元素(跳过那些长度不足的行,避免索引越界);
  3. 将列索引和对应的元素列表存入字典即可。

完整代码实现

def matrixToDict(mat):
    # 获取矩阵中最长行的长度,确定需要处理的列索引范围
    max_col_count = max(len(row) for row in mat)
    result_dict = {}
    
    for col_idx in range(max_col_count):
        # 收集当前列的所有有效元素
        result_dict[col_idx] = [
            row[col_idx] 
            for row in mat 
            if col_idx < len(row)
        ]
    
    return result_dict

测试你的示例

把你给出的测试矩阵代入函数,就能得到完全符合预期的结果:

test_matrix = [[1,2,3],[4,5,6],[7,8,9,10]]
print(matrixToDict(test_matrix))
# 输出结果:{0: [1, 4, 7], 1: [2, 5, 8], 2: [3, 6, 9], 3: [10]}

代码细节说明

  • max_col_count:通过遍历所有行的长度找到最大值,确保我们不会遗漏任何存在的列索引(比如示例中第三行有4个元素,所以列索引要覆盖到3);
  • 列表推导式里的判断条件col_idx < len(row):既避免了索引越界错误,又能精准收集到每一列的有效元素;
  • 这个实现还能兼容更复杂的场景,比如矩阵里有不同长度的行,甚至包含空行(题目说明矩阵非空,空行也能正常处理)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 11:52:27