mapped = [(1,50),(1,11),58)]
我想写的这句话是这样的:
reduce(lambda x:(x[0]+y[0],x[1]+y[1]),(i for i in mapped))
如果它正常工作,那么它应该返回(3,119)的元组.但是,我收到了错误
TypeError: reduce() of empty sequence with no initial value
任何人都可以弄清楚为什么会这样吗?
解决方法 使用这种方式:>>> reduce(lambda x,y:(x[0]+y[0],[i for i in mapped])(3,119)>>> reduce(lambda x,(i for i in mapped))(3,119)
你错过的是lambda应该有两个参数,你只需要一个.
对于python3.x,请参阅以下代码:
>>> from functools import reduce>>> reduce(lambda x:(x[0]+y[0],(i for i in mapped))Traceback (most recent call last): file "<stdin>",line 1,in <module>TypeError: <lambda>() takes exactly 1 positional argument (2 given)>>> reduce(lambda x,119)总结
以上是内存溢出为你收集整理的python – TypeError:Reduce()没有初始值的空序列全部内容,希望文章能够帮你解决python – TypeError:Reduce()没有初始值的空序列所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)