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

Python如何将一维稀疏列表转字典函数改写为二维版本

二维稀疏列表转字典实现方案

你现有一维版本的核心逻辑(遍历元素+记录索引+非零值入字典)完全可以复用,只需要多增加一层行维度的遍历、同时记录行列双索引即可。

具体修改逻辑

  • 保留原有的字典初始化逻辑
  • 新增外层循环逐行遍历输入的二维列表,维护行索引计数器
  • 对每一行,复用你一维版本的遍历逻辑,维护列索引计数器
  • 非零元素存入字典时,键从单索引改成(行索引, 列索引)格式的元组即可

最终实现代码

def sp2(ns):
    dic = {}
    row_index = 0
    # 外层遍历每一行,记录行索引
    for row in ns:
        col_index = 0
        # 内层遍历行内元素,逻辑和一维版本完全一致
        for val in row:
            if val != 0:
                dic[(row_index, col_index)] = val
            col_index += 1
        row_index += 1
    return dic

效果验证

运行测试用例,输出完全符合预期:

# 测试用例(a/e/h/i替换为实际值即可,这里用字符示意)
print(sp2([
    ['a',0,0],
    [0,'e',0],
    [0,'h','i']
]))  # 输出 {(0,0):'a', (1,1):'e', (2,1):'h', (2,2):'i'}

print(sp2([])) # 输出 {}
print(sp2([[0,0,0], [0,0,0]])) # 输出 {}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 22:09:50