Python 内置函数:sum()
·
在 Python 中,数值累加是最常见的运算之一。sum() 内置函数提供了一种简洁高效的方式来对可迭代对象中的元素求和。相比手动循环加总,sum() 更加直观、性能更优,常用于列表、元组、集合等数据的聚合处理。
一、函数语法
sum(iterable, start=0)
参数:
iterable:必填,任意可迭代对象(如列表、元组、集合、字典、生成器等),要求其中的元素支持加法运算。
start:必填,可选,指定求和的初始值,默认是 0。
返回值:
返回所有元素与初始值 start 的和。
二、基础用法示例
1、对数字列表求和
nums = [1, 2, 3, 4, 5]print(sum(nums)) # 15
2、指定起始值
nums = [1, 2, 3]print(sum(nums, 10)) # 16(10 + 1 + 2 + 3)
3、对集合、元组求和
print(sum((10, 20, 30))) # 60print(sum({4, 5, 6})) # 15
4、对字典求和
sum() 作用于字典时,默认只对键求和:
d = {"a": 10, "b": 20}print(sum(d)) # 对键 "a"、"b" 求和无意义,会报错
正确方式是显式传入 d.values():
d = {"a": 10, "b": 20}print(sum(d.values())) # 30
5、对生成器求和
print(sum(i*i for i in range(5))) # 30 (0+1+4+9+16)
三、进阶技巧
1、与 map() 配合
words = ["apple", "banana", "cherry"]total_length = sum(map(len, words))print(total_length) # 17
2、与 zip() 配合实现向量求和
v1 = [1, 2, 3]v2 = [4, 5, 6]result = [sum(pair) for pair in zip(v1, v2)]print(result) # [5, 7, 9]
3、浮点误差问题
由于浮点数精度限制,sum() 结果可能存在微小误差。
print(sum([0.1] * 10)) # 0.9999999999999999
可使用 math.fsum() 获得更精确的结果。
四、补充说明
1、适用对象
数字类型(int、float、complex)的可迭代对象以及支持加法运算的对象(如 Decimal、Fraction、自定义类)。
2、性能特点
sum() 内部采用循环加总实现,效率通常优于显式 for 循环。
对于大规模数据的数值运算,推荐结合 numpy.sum()(效率更高)。
📘 小结
sum() 是 Python 提供的快速求和工具,常用于数值序列的累加。它支持可迭代对象和可选起始值,既简洁又高效。

“点赞有美意,赞赏是鼓励”
更多推荐
所有评论(0)