用Python求和非整数([[1],[2]])= [1,2]
发布时间:2020-12-20 13:05:00 所属栏目:Python 来源:网络整理
导读:是否可以在 python中获取非整数的总和? 命令 sum([[1],[2]]) 例如,给出错误 Traceback (most recent call last): File "pyshell#28",line 1,in module sum([[1,2,3],[2,3,4]])TypeError: unsupported operand type(s) for +: 'int' and 'list' 我怀疑sum会
是否可以在
python中获取非整数的总和?
命令 sum([[1],[2]]) 例如,给出错误 Traceback (most recent call last): File "<pyshell#28>",line 1,in <module> sum([[1,2,3],[2,3,4]]) TypeError: unsupported operand type(s) for +: 'int' and 'list' 我怀疑sum会尝试将0添加到列表[1],导致失败.我确信有很多黑客可以解决这个限制(在一个类中包装东西,并手动实现__radd__),但有更优雅的方法吗? 解决方法
看起来你想要这个:
>>> sum([[1],[2]],[]) [1,2] 你是对的,它试图将0添加到[1]并收到错误.解决方案是给sum一个额外的参数给出起始值,对于你来说这将是空列表. 编辑:正如gnibbler所说,sum并不是连接事物的好方法.如果你只想聚合一系列事物,你应该使用reduce而不是自己的__radd__函数来使用sum.这是一个例子(与sum相同的不良行为): >>> reduce(lambda x,y: x+y,[[1],[2]]) [1,2] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |