问题描述
while reduce(lambda x,y: x[0] + y[0],final_assignments,0) < min:
当函数引发“ TypeError:'int'对象不可下标”时, final_assignments为[[5,100]]
。我不明白这是什么问题,需要帮助。
解决方法
我找到了解决方法,初始值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)
,
归约作用于两个项目:先前返回的结果和下一个输入。
由于您的结果类型为int
,因此第一个参数类型也必须为int
:
while reduce(lambda x,y: x + y[0],0) < min: