reduce函数(用Python编写)调用;类型错误:';int';对象不可下标";但是它';It’他是按名单行事的 reduce时(λx,y:x[0]+y[0],最终赋值,0)
当函数引发“TypeError:'int'对象不可下标”时,最后的_赋值是reduce函数(用Python编写)调用;类型错误:';int';对象不可下标";但是它';It’他是按名单行事的 reduce时(λx,y:x[0]+y[0],最终赋值,0),python,lambda,reduce,Python,Lambda,Reduce,当函数引发“TypeError:'int'对象不可下标”时,最后的_赋值是[[5100]]]。我不明白是什么问题,希望得到一些帮助。我找到了修复方法,初始值0不是列表,因此我无法添加0[0]+y[0]。 相反,lambda应根据类型选择要拾取的值: while reduce(lambda x, y: x[0] + y[0], final_assignments, 0) < min: 缩减作用于两项:先前返回的结果和下一个输入 由于结果类型是int,因此第一个参数类型必须是int: red
[[5100]]]
。我不明白是什么问题,希望得到一些帮助。我找到了修复方法,初始值0不是列表,因此我无法添加0[0]+y[0]。
相反,lambda应根据类型选择要拾取的值:
while reduce(lambda x, y: x[0] + y[0], final_assignments, 0) < min:
缩减作用于两项:先前返回的结果和下一个输入 由于结果类型是
int
,因此第一个参数类型必须是int
:
reduce(lambda x,y: x[0]+y[0] if type(x) == list else x+y[0], final_assignments, 0)
reduce时(λx,y:x+y[0],最终赋值,0)
是否要对数组求和?使用sum()
比使用reduce()
更简单。我甚至不知道这个函数,谢谢!无论如何,我找到了这个问题的解决方法如果是多余的,那么只有else
分支将被执行-请参阅我的答案。
while reduce(lambda x, y: x + y[0], final_assignments, 0) < min: