如何解决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:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。