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

基于Python列表实现二维数组电子表格的代码修正求助

实现基于列表的二维浮点数电子表格

你的问题核心是没有按行分组构建结构,也未处理缺失列的填充。以下是修正后的代码,完全用Python列表实现,满足你的需求:

# 输入数据:每个子列表格式为 [行号, 列号, 值]
input_data = [[0, 0, 9], [0, 1, 2], [0, 2, 2.0], [1, 0, 2], [1, 1, 5], [1, 2, 7], [2, 0, 3], [2, 1, 6]]

# 确定最大行号和列号,用于初始化二维框架
max_row = max(item[0] for item in input_data)
max_col = max(item[1] for item in input_data)

# 初始化全为None的二维列表,覆盖所有行列范围
spreadsheet = []
for _ in range(max_row + 1):
    row = [None] * (max_col + 1)
    spreadsheet.append(row)

# 遍历输入数据,填充对应位置的值并强制转为浮点数
for row_idx, col_idx, value in input_data:
    spreadsheet[row_idx][col_idx] = float(value)

# 输出结果
print(spreadsheet)

运行后会得到预期结构:

[[9.0, 2.0, 2.0], [2.0, 5.0, 7.0], [3.0, 6.0, None]]

关键细节说明:

  • 确定行列范围:通过输入数据找到最大行/列号,确保创建的二维列表能覆盖所有给定单元格位置。
  • 初始化框架:先构建全None的二维结构,缺失的单元格(如第2行第2列)会保留None。
  • 强制浮点数存储:用float(value)转换所有输入值,保证电子表格仅存储浮点数类型,整数输入也会转为浮点格式。

如果需要通过(row, column)元组索引直接访问单元格,可以添加一个简单的工具函数:

def get_cell(spreadsheet, index):
    row, col = index
    if 0 <= row < len(spreadsheet) and 0 <= col < len(spreadsheet[0]):
        return spreadsheet[row][col]
    return None

# 示例:访问(2,2)单元格
print(get_cell(spreadsheet, (2,2)))  # 输出 None

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 02:43:19