reduce函数用Python编写调用“ TypeError:'int'对象不可下标”,但它作用于列表列表

问题描述

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: