在 Python 中,数值累加是最常见的运算之一。sum() 内置函数提供了一种简洁高效的方式来对可迭代对象中的元素求和。相比手动循环加总,sum() 更加直观、性能更优,常用于列表、元组、集合等数据的聚合处理。
一、函数语法
sum(iterable, start=0)参数:
iterable:必填,任意可迭代对象(如列表、元组、集合、字典、生成器等),要求其中的元素支持加法运算。
start:必填,可选,指定求和的初始值,默认是 0。
返回值:
返回所有元素与初始值 start 的和。
二、基础用法示例
1、对数字列表求和
nums = [1, 2, 3, 4, 5]
print(sum(nums)) # 152、指定起始值
nums = [1, 2, 3]
print(sum(nums, 10)) # 16(10 + 1 + 2 + 3)3、对集合、元组求和
print(sum((10, 20, 30))) # 60
print(sum({4, 5, 6})) # 154、对字典求和
sum() 作用于字典时,默认只对键求和:
d = {"a": 10, "b": 20}
print(sum(d)) # 对键 "a"、"b" 求和无意义,会报错正确方式是显式传入 d.values():
d = {"a": 10, "b": 20}
print(sum(d.values())) # 305、对生成器求和
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) # 172、与 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可使用 .fsum() 获得更精确的结果。
四、补充说明
1、适用对象
数字类型(int、float、complex)的可迭代对象以及支持加法运算的对象(如 Decimal、Fraction、自定义类)。
2、性能特点
sum() 内部采用循环加总实现,效率通常优于显式 for 循环。
对于大规模数据的数值运算,推荐结合 .sum()(效率更高)。
小结
sum() 是 Python 提供的快速求和工具,常用于数值序列的累加。它支持可迭代对象和可选起始值,既简洁又高效。
“点赞有美意,赞赏是鼓励”
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.