Python求和函数sum用法详解:从基础到列表推导式实战

凌晨两点半
凌晨两点半
发布时间:2026-10-13| 6人浏览过
原创

本文详解Python中sum函数的用法,包括参数iterable和start的作用。通过解析计算差值平方和的代码案例,深入讲解sum与列表推导式的结合使用,帮助读者理解简洁高效的Python语法技巧。

Python求和函数sum用法详解:从基础到列表推导式实战

在研读《集体编程智慧》一书时,遇到一段Python代码起初令人费解,甚至怀疑是排版错误。经过查阅sum函数的官方用法及参考多位Python专家编写的代码后,才意识到这是Python语法的精妙之处。现将书中涉及的代码片段摘录如下,以便深入分析。

from math import sqrt

def sim_distance(prefs, person1, person2):
 # 得到shared_items的列表
 si = {}
 for item in prefs[person1]:
  if item in prefs[person2]:
   si[item] = 1

 # 如果两者没有共同之处,则返回0
 if len(si) == 0: return 0

 # 计算所有差值的平方和
 sum_of_squares = sum([pow(prefs[person1][item] - prefs[person2][item], 2) 
      for item in prefs[person1] if item in prefs[person2]])

 return 1/(1 + sqrt(sum_of_squares))

当时困惑的代码段用于计算所有差值的平方和。按照常规编程逻辑,似乎应该先执行for循环再调用pow函数,这种顺序上的差异曾让我感到疑惑。直到查阅sum函数的具体用法后,才恍然大悟,再次感叹Python语法的简洁与强大。

sum函数的标准参数格式为sum(iterable[, start])。其中,iterable代表可迭代对象,可以是列表(list)、元组(tuple)或字典(dictionary)等类型。

sum函数的最终返回值等于可迭代对象中所有元素相加的结果,再加上可选参数start的值。若未指定start,其默认值为0。理解这一点后,再看前文计算差值平方和的代码,便会发现其逻辑清晰。参考以下简化示例,有助于更好地理解原代码的结构。

from math import sqrt
a = range(1, 11)
b = range(1, 10)
c = sum([item for item in a if item in b])
print c

读者可以自行输入并运行这段简化代码,最终输出的结果为:45。

补充说明:表达式"item for item in a if item in b"被称为列表推导式(List Comprehension)。这是一种在字符串序列或对象集合上执行相同操作的简洁写法,能够显著简化代码。

以上关于Python中sum函数用法的详解即为全部内容,希望能对读者有所帮助。欢迎大家参考实践,并支持本站获取更多技术分享。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。