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()函数等。
