Skip to main content
 首页 » 编程设计

python之类型错误 : 'int' object is not iterable

2025年05月04日11xxx_UU

我在实现动态规划算法时遇到了这个错误。这是我的代码:

def shoot(aliens): 
    s=[0]*10 
    s[0]=0 
    s[1]=0 
    for j in xrange(2,len(aliens)): 
        for i in xrange(0,j): 
           s[j]=max(s[i] + min(aliens[j],fib(j-i))) <---Error here 
    print s[len(aliens)-1] 
    return s[len(aliens)-1] 
 
def fib(n): 
    if n == 0: 
        return 0 
    if n == 1: 
        return 1 
    return fib(n-1) + fib(n-2) 
 
aliens=[1,10,10,1] 
print shoot(aliens) 

它说:

Traceback (most recent call last): 
File "module1.py", line 30, in <module> 
print shoot(aliens) 
File "module1.py", line 19, in shoot 
s[j]=max(s[i] + min(aliens[j],fib(j-i))) 
TypeError: 'int' object is not iterable 

请帮帮我

更新: 哦,我明白了。 我是说

s[j]=max(s[i] + min(aliens[j],fib(j-i))) 

但我错了。 所以,我就这样编辑了它,但我不知道如何使用 max() 来取出数组中最大的。

    b=0 
    for j in xrange(2,len(aliens)): 
        for i in xrange(0,j): 
           a[b]=(s[i] + min(aliens[j],fib(j-i))) 
           b+=1 
        s[j]=Largest(a[b]);   <--How can I do that with Max() function 

请您参考如下方法:

max 和 min 函数需要多个参数或一系列元素。您对 min() 的调用有两个参数 (ok),但对 max() 的调用只有一个。不确定你想在这里最大化什么......