while reduce(lambda x, y: x[0] + y[0], final_assignments, 0) < min:
final_ assignments是CCD_;TypeError:"int"对象不可下标"。我不明白问题出在哪里,希望得到一些帮助。
我找到了修复程序,初始值0不是列表,所以我不能添加0[0]+y[0]。相反,lambda应该根据类型选择要选择的值:
reduce(lambda x,y: x[0]+y[0] if type(x) == list else x+y[0], final_assignments, 0)
Reduction作用于两项:先前返回的结果和下一个输入。
由于结果类型是int
,所以第一个参数类型也需要是int
:
while reduce(lambda x, y: x + y[0], final_assignments, 0) < min: