1. ホーム
  2. スクリプト・コラム
  3. パイソン

[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。

2022-01-01 04:57:22

質問

Pythonのコードは以下の通りです。

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]

これを実行すると、次の行でエラーが発生します。 s+=line :

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

解決方法は?

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

ここで s はint型であり word は2次元リストです。ですから for line in world , line1D List . を追加することは不可能です。 List の中に int という型があります。ここで s+=line 不正確

そこで、In s+=line に置き換えることができます。 s+=sum(行) . 答えが見つかったようですね。

これを試してみてください。

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