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

Python函数式编程表格处理程序IndexError报错求助

代码问题修正

核心错误列表

  • input_data递归逻辑缺陷:递归调用input_data(n-1)后未捕获返回值,也未将当前读取的行与递归结果合并,最终仅返回1行数据
  • filtertuple参数定义错误:使用可变参数*tup接收行列表时,整个列表会被打包为tup的唯一元素,无法逐行遍历,直接触发索引越界报错
  • 列索引取值偏差:误将每行索引为2的amount列识别为debt列,实际因name列包含空格,debt为每行最后一个拆分元素
  • increasedebt逻辑缺失:仅提取debt值计算提升比例,未保留name、amount列内容,返回结果无法匹配输出要求
  • 输出逻辑缺失:直接打印原始数据结构,未按要求格式化字符串

修正后可运行代码

def input_data(n):
    if n == 0:
        return []
    current_row = tuple(input().split())
    return [current_row] + input_data(n - 1)


def filtertuple(rows):
    return list(filter(lambda row: int(row[-1]) != 0, rows))


def increasedebt(filtered_rows):
    def update_row(row):
        name = " ".join(row[:-2])
        amount = row[-2]
        updated_debt = float(row[-1]) * 1.42
        return f"{name} {amount} {updated_debt:.2f}"
    return list(map(update_row, filtered_rows))


def run():
    n = int(input())
    rows = input_data(n)
    filtered = filtertuple(rows)
    result = increasedebt(filtered)
    for line in result:
        print(line)


run()

运行验证

使用给定输入样例测试,输出数值与预期完全匹配:

Tatiana Santos 411889 52371.02
Theia Nicholson 783887 840570.42
Hamaad Millington 818507 392760.64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 11:15:04