当前位置: 首页 > 面试题库 >

python的sum()和非整数值

太叔鹏云
2023-03-14
问题内容

是否有简单快速的方法将sum()与非整数值一起使用?

所以我可以这样使用它:

class Foo(object):
    def __init__(self,bar)
        self.bar=bar

mylist=[Foo(3),Foo(34),Foo(63),200]
result=sum(mylist) # result should be 300

我试着重写__add____int__等,但我没有找到一个解决办法

编辑:

解决方案是实现:

 def __radd__(self, other):
    return other + self.bar

正如威尔在他的帖子中建议的那样。但是像往常一样,所有道路都通向罗马,但我认为这是最好的解决方案,因为我__add__在课堂上不需要


问题答案:

有点棘手-sum()函数开始并将其添加到下一个,依此类推

您需要实现该__radd__方法:

class T:
    def __init__(self,x):
        self.x = x
    def __radd__(self, other):
        return other + self.x

test = (T(1),T(2),T(3),200)
print sum(test)


 类似资料:
  • 返回两个或两个以上数字/数字数组中元素之和。 使用 Array.reduce() 将每个值添加到累加器,并且累加器初始值为 0 。 const sum = (...arr) => [...arr].reduce((acc, val) => acc + val, 0); sum(...[1, 2, 3, 4]); // 10

  • 问题内容: 我有一个大小为N *M的矩阵,我想找到每一行的平均值。值是从1到5,并且没有任何值的条目设置为0。但是,当我想使用以下方法查找均值时,它给了我错误的均值,因为它还计算了具有值的条目0。 如何获得仅非零值的均值? 问题答案: 获取每一行的非零计数,并将其用于平均每一行的总和。因此,实现看起来像这样- 如果您使用的是较旧版本的NumPy,则可以使用count的float转换来替换,例如,

  • 问题内容: 我正在寻找python中整数的最小值和最大值。例如,在Java中,我们有和。python中是否有类似的东西? 问题答案: Python 3 在Python 3中,此问题不适用。普通int类型是无界的。 但是,你实际上可能正在寻找有关当前解释器的字长的信息,在大多数情况下,该信息将与机器的字长相同。该信息在Python 3中仍以形式提供,这是一个有符号的单词可以表示的最大值。等效地,它是

  • 问题内容: 这是我对一些JSON数据对象进行JavaScript的首次尝试,并且需要一些建议以正确的方式实现我的目标。 一些服务器端代码实际上生成了我必须使用的JSON格式的字符串,并将其分配给字符串: 但是在服务器替换其数据后,我必须使用的最终结果(当然没有\ r \ n): 然后,我可以将其更改为要使用的对象。 这使我可以访问数据的各行数据,但是我需要对这些值进行求和,分组和排序。 我需要这样

  • 问题内容: 我首先尝试使用python将字符串存储在sqlite中,并得到以下消息: sqlite3.ProgrammingError:除非使用可以解释8位字节串的text_factory(如text_factory = str),否则不得使用8位字节串。强烈建议您改为将应用程序切换为Unicode字符串。 好的,我切换到Unicode字符串。然后我开始收到消息: sqlite3.Operatio

  • sum 某个列字段相加sum($table, $column, $where) table [string] 表名. column [string] 查询的列. where (optional) [array] WHERE 条件.sum($table, $join, $column, $where) table [string] The table name. join [array] Table