Python错误类型错误:无序类型:int()>;列表()

Python错误类型错误:无序类型:int()>;列表(),python,dynamic,dynamic-programming,knapsack-problem,Python,Dynamic,Dynamic Programming,Knapsack Problem,您好,我正在编写和测试一个递归动态编程背包(0-1)(以下代码是主文件和函数)我不断收到错误(在代码之后发布)…我真的很困惑错误是什么,所以任何帮助都将不胜感激 主文件 函数调用(在类Knapsack_Test.py中 def递归动态knap(self,v,w,i,w): n=len(v)-1 如果i==n: 如果W

您好,我正在编写和测试一个递归动态编程背包(0-1)(以下代码是主文件和函数)我不断收到错误(在代码之后发布)…我真的很困惑错误是什么,所以任何帮助都将不胜感激

主文件 函数调用(在类Knapsack_Test.py中
def递归动态knap(self,v,w,i,w):
n=len(v)-1
如果i==n:
如果W
错误
回溯(最近一次呼叫最后一次):
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\Knapsack\u Main.py”,第9行,在
背包.递归背包试验(尺寸,W)
递归背包测试中的文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\Knapsack\u Test.py”,第19行
self.knapsack.recursive\u dynamic\u knap(v,w,j,w)
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py”,第22行,递归动态knap
返回最大值(自递归动态knap(v,w,i+1,w),自递归动态knap(v,w,i+1,w-w[i])+v[i])
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py”,第22行,递归动态knap
返回最大值(自递归动态knap(v,w,i+1,w),自递归动态knap(v,w,i+1,w-w[i])+v[i])
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py”,第22行,递归动态knap
返回最大值(自递归动态knap(v,w,i+1,w),自递归动态knap(v,w,i+1,w-w[i])+v[i])
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py”,第22行,递归动态knap
返回最大值(自递归动态knap(v,w,i+1,w),自递归动态knap(v,w,i+1,w-w[i])+v[i])
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py”,第22行,递归动态knap
返回最大值(自递归动态knap(v,w,i+1,w),自递归动态knap(v,w,i+1,w-w[i])+v[i])
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py”,第22行,递归动态knap
返回最大值(自递归动态knap(v,w,i+1,w),自递归动态knap(v,w,i+1,w-w[i])+v[i])
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py”,第22行,递归动态knap
返回最大值(自递归动态knap(v,w,i+1,w),自递归动态knap(v,w,i+1,w-w[i])+v[i])
TypeError:无序类型:int()>list()

我认为问题在于,在
返回max(self.recursive\u dynamic\u knap(v,w,I+1,w-w[I])中,self.recursive\u dynamic\u knap(v,w,I+1,w-w[I])+v[I])
递归\u dynamic\u knap
的调用之一是返回
v
,这是一个列表,作为
max()的参数没有意义,因为它是“无序”(不能合理地判断为大于或小于
int

你也可以发布函数
背包。递归背包测试
?请忽略我的问题我解决了它!我很高兴你解决了你的问题。没有必要编辑你的帖子说“忽略这个”--只有1)接受反映您解决方案的张贴答案(将问题标记为已回答)或者2)如果没有人这样做,那么用你找到的解决方案自己回答问题,并接受它。@user1661211:如果你已经解决了,请将你的解决方案作为你问题的答案发布。我投票结束这个问题,因为问题所有者说“请忽略我的问题,我解决了它!”!“是的,这是正确的答案……哈哈,我已经猜出来了,但再次感谢你!
import Knapsack_Test

size = 10
W = 2**size
knapsack = Knapsack_Test.Knapsack_Test()

for i in range(1, 10):
    knapsack.recursive_knapsack_test(size, W)
size = size + 100*i

W = 2**size
def recursive_dynamic_knap(self, v, w, i, W):
    n = len(v) - 1
    if i == n:
        if W < w[n]:
            return 0
        else:
            return v
    elif W < w[i]:
        return self.recursive_dynamic_knap(v, w, i+1, W)

    return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
Traceback (most recent call last):
  File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\Knapsack_Main.py", line 9, in <module>
    knapsack.recursive_knapsack_test(size, W)
  File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\Knapsack_Test.py", line 19, in recursive_knapsack_test
    self.knapsack.recursive_dynamic_knap(v, w, j, W)
  File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py", line 22, in recursive_dynamic_knap
    return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
  File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py", line 22, in recursive_dynamic_knap
    return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
  File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py", line 22, in recursive_dynamic_knap
    return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
  File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py", line 22, in recursive_dynamic_knap
    return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
  File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py", line 22, in recursive_dynamic_knap
    return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
  File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py", line 22, in recursive_dynamic_knap
    return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
  File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py", line 22, in recursive_dynamic_knap
    return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
TypeError: unorderable types: int() > list()