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

执行Python代码时出现TypeError:字符串与整数不支持减法运算

搞定TypeError: unsupported operand type(s) for -: 'str' and 'int'这个坑

问题拆解

先看你报错的核心信息:TypeError: unsupported operand type(s) for -: 'str' and 'int',触发错误的代码是:

train_data_matrix[line[0]-1, line[1]-1] = line[2]

说白了就是line[0]和line[1]是字符串类型,你却拿它们和整数1做减法,Python肯定不干啊——字符串和整数没法直接运算。

修复方案

核心就是把字符串转成整数,两种常用方法任你选:

  • 提前批量转换:如果你的line是从文本里分割出来的字符串列表,直接转成整数列表再用:

    # 比如你之前是line = some_line.split(),现在改成下面这样
    line = list(map(int, some_line.split()))
    train_data_matrix[line[0]-1, line[1]-1] = line[2]
    
  • 按需逐个转换:如果不想批量转,就在用到的地方直接转类型:

    train_data_matrix[int(line[0])-1, int(line[1])-1] = int(line[2])
    

为啥会踩这个坑?

大概率是你从文本文件(比如csv、txt)读取数据的时候,默认读出来的都是字符串类型,哪怕内容是数字也一样。而numpy矩阵的索引必须是整数,所以没转类型就直接用,自然就报错了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:39:16