欢迎访问宙启技术站
智能推送

Python中的sum()函数使用

发布时间:2023-06-17 07:50:19

Python中的sum()函数是内置函数之一,用于对可迭代对象中的所有元素进行求和。可迭代对象包括序列(如列表和元组)和迭代器。

sum()函数的语法非常简单,只需要传入一个可迭代对象作为参数即可:

sum(iterable[, start])

其中,iterable表示一个可迭代对象,start是可选的初始值。

如果可迭代对象中包含数字类型的元素,那么sum()函数将返回这些元素的总和。例如:

>>> nums = [1, 2.5, 3, 4.2, 5]
>>> total = sum(nums)
>>> print(total)
15.7

如果可迭代对象为空,那么sum()函数将返回一个初始值start(如果提供了初始值),否则会抛出TypeError异常。

>>> nums = []
>>> total = sum(nums, 10)  # 用10作为初始值
>>> print(total)
10

另外,sum()函数也支持对自定义对象进行求和,只需要在对象中实现__add__()方法(用于定义对象相加的行为)即可。例如:

class Score:
    def __init__(self, math, english):
        self.math = math
        self.english = english

    def __add__(self, other):
        if isinstance(other, Score):
            return Score(self.math + other.math, self.english + other.english)
        raise TypeError('unsupported operand type(s) for +: %s and %s' % (type(self), type(other)))

scores = [Score(90, 80), Score(85, 92), Score(78, 88)]
total_score = sum(scores)
print(total_score.math, total_score.english)  # 253 260

在以上例子中,Score类重载了__add__()方法,用于将两个Score对象相加,求得它们的数学和英语总分。虽然sum()函数的参数是scores列表,但我们仍然可以反复使用加法运算符对Score对象进行求和。

最后,需要注意的是,在处理大型数据集时,sum()函数可能存在性能问题。此时,可以考虑使用更高效的技术,例如使用for循环或者NumPy库的sum()函数等。