TypeError: can only concatenate list (not "int") to list错误原因排查
解决TypeError: can only concatenate list (not "int") to list问题
看起来你遇到的这个错误,核心点其实和你说的“多维列表”没关系,反而大概率是你传入函数的el参数里,el[2]和el[3]本身就是普通列表(不是多维,但就是列表类型),而不是你以为的整数。
我帮你拆解下问题:
你的代码里el2 = el[2]、el3 = el[3],然后试图执行el2 + 3000这类操作——如果el2是列表的话,+运算符对列表来说是“拼接”操作,只能和另一个列表用,和整数相加肯定会报错。
可能的具体原因:
- 你调用
ifWin2时传入的el是嵌套列表,比如类似el = [10, 20, [500], [600]],这时候el2是[500](列表类型),不是单个整数,执行[500] + 3000就会触发你看到的TypeError。 - 可能在调用这个函数之前,
el的第2、3位元素被其他代码意外改成了列表,比如之前有代码做了el[2] = [some_value]这类操作,导致类型变了。 - 你可能误解了
el的结构,以为el[2]是整数,但实际上它就是列表(哪怕不是多维的)。
给你个快速验证的方法:在函数开头加一行打印代码,看看el2和el3的类型和值:
def ifWin2(el): el2, el3 = el[2], el[3] print("el2类型:", type(el2), "值:", el2) print("el3类型:", type(el3), "值:", el3) # 剩下的原代码...
运行后就能明确看到它们到底是不是列表了。
内容的提问来源于stack exchange,提问作者Pure Soul
相关产品推荐
相关产品推荐

