我试图运行此代码,但显示了一个错误:

def shoot(aliens):

    s=[0]*1000
    s[0]=0
    s[1]=1
    num=len(aliens)
    b=[[0 for m in range(1000)] for n in range(1000)]
    for j in xrange(2,num):
        for i in xrange(0,j):

                b[j][i]=s[i]+min(int(aliens[j]),f[j-i]) ##Error here
        s[j]=max(b)

错误是:
Traceback (most recent call last):
File "module1.py", line 67, in <module>
print shoot(line)
File "module1.py", line 26, in shoot
b[j][i]=s[i]+min(int(aliens[j]),f[j-i])
TypeError: can only concatenate list (not "int") to list

请帮忙!
编辑:添加了更多代码。S、Aliens和F是其他数组。我试图将结果保存到二维数组,但它显示了错误。

最佳答案

s[j] = max(b)

不将b视为二维整数数组并选择最大的整数。b是列表列表。max(b)比较列表并返回比较最高的列表。(列表比较是通过比较元素lexicographically来完成的)。
你想要的
s[j] = max(max(sublist) for sublist in b)

07-28 00:53
查看更多