【问题标题】:TypeError: unsupported operand type(s) for +=: 'int' and 'list'类型错误:+= 不支持的操作数类型:“int”和“list”
【发布时间】:2015-09-12 19:00:21
【问题描述】:

我正在尝试用 python 做一个项目。我在行中遇到错误

s+=line

TypeError: unsupported operand type(s) for +=: 'int' and 'list'

这里是名为testIfCorrect的函数:

def testIfCorrect(world, x, y):
    s=0
    for line in world:
        s+=line
        print("ligne",line)
        if(s > 2):
            return False
    for i in range(x):
        if(sum(returnColumn(world, i)) > 2):
            return False
    for j in range(x):
        for k in range(y):
            if(j == k):
                pass
            else:
                if(world[j] == world[k]):
                    return False
                if(returnColumn(world, j) == returnColumn(world ,k)):
                    return False

def returnColumn(array, column):
    return [col[column] for col in array]

哪里出错了?

【问题讨论】:

  • line 包含什么?你期望会发生什么? s 是一个整数(s=0),但显然line 是一个字符串,大概是因为world 是一个字符串列表或一个文件,或者可能是一个字符串。
  • 你怎么称呼testIfCorrect。你能告诉它的参数吗?我认为world 是一个列表列表。请确认

标签: python


【解决方案1】:

s=0
for line in world:
    s+=line

这里s 是一个整数,word 是二维列表。所以,在for line in world 中,line 是一个1D List。不可能将List 添加到int 类型中。这里,s+=line 不正确

所以,在s+=line 中,您可以替换 s+=sum(line)。我想你已经找到了答案。

试试这个:

s=0
for line in world:
    s+=sum(line)

【讨论】:

  • 我怎么能这样做?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-08
  • 1970-01-01
  • 1970-01-01
  • 2018-09-01
  • 2013-10-04
  • 2021-06-16
相关资源
最近更新 更多