Python 内建函数列表 > Python 的内置函数 sum

Python 的内置函数 sum() 是一个用于计算可迭代对象中所有元素之和的高效工具。这个函数可以接受一个可迭代对象(如列表、元组、集合等)作为参数,并返回其中所有元素的总和。

基本用法

numbers = [1, 2, 3, 4, 5]
total = sum(numbers)  # 返回 15

可选参数

sum() 函数还接受一个可选的第二个参数 start,用于指定求和的初始值。默认情况下 start 为 0。

numbers = [1, 2, 3]
total = sum(numbers, 10)  # 返回 16 (1+2+3+10)

支持的数据类型

sum() 可以处理各种数值类型,包括:

  • 整数 (int)
  • 浮点数 (float)
  • 复数 (complex)
  • 其他实现了 __add__ 方法的对象

注意事项

  1. 不能直接对非数值类型的可迭代对象使用 sum(),除非这些对象实现了 __add__ 方法。
    strings = ["a", "b", "c"]
    # sum(strings)  # 会抛出 TypeError
    
  2. 对于浮点数求和可能存在精度问题,可以使用 math.fsum() 获得更高精度的结果。

应用场景

  1. 计算列表总和:
    grades = [85, 90, 78, 92]
    total_score = sum(grades)
    
  2. 带初始值的累加:
    account_balances = [100.50, 250.75, 300.00]
    initial_balance = 500
    current_balance = sum(account_balances, initial_balance)
    
  3. 与其他函数结合使用:
    # 计算列表中偶数的和
    numbers = range(1, 11)
    even_sum = sum(x for x in numbers if x % 2 == 0)
    

性能考虑

sum() 是使用 C 实现的,对于大型数据集比手动循环累加更高效。在处理非常大的可迭代对象时,建议使用生成器表达式而非先创建完整列表:

# 更高效的方式
total = sum(x for x in range(1000000))

sum() 是 Python 中简单但功能强大的内置函数,能够处理各种数值累加任务,是数据分析、科学计算等场景中的常用工具。