gpt4 book ai didi

python - 在 Python 中求和非整数

转载 作者:太空宇宙 更新时间:2023-11-03 12:12:27 26 4
gpt4 key购买 nike

是否可以在 Python 中对非整数求和?

我试过这个命令

sum([[1], [2]])

得到[1, 2],但是报错

Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
sum([[1], [2]])
TypeError: unsupported operand type(s) for +: 'int' and 'list'

我怀疑 sum 试图将 0 添加到列表 [1],导致失败。我敢肯定有很多 hack 可以解决这个限制(将东西包装在一个类中,并手动实现 __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]

关于python - 在 Python 中求和非整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3315365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com