基于Python中求和函数sum的用法详解

作者:肖老板 时间:2022-12-05 23:26:18 

基于Python中求和函数sum的用法详解

今天在看《集体编程智慧》这本书的时候,看到一段Python代码,当时是百思不得其解,总觉得是书中排版出错了,后来去了解了一下sum的用法,看了一些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之神(bian)奇(tai)语法。

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" 这种表达式叫作列表推导式,是在一组字符串或者一组对象上执行一条相同操作的简洁写法!

来源:https://blog.csdn.net/cloume/article/details/65971925

标签:Python,sum,求和
0
投稿

猜你喜欢

  • python实现字符串和日期相互转换的方法

    2022-09-02 04:05:55
  • Microsoft SQL Server数据库SA权限总结

    2009-01-06 11:32:00
  • 深入理解golang的异常处理机制

    2024-02-04 10:02:37
  • 使用Python去除字符串中某个字符的多种实现方式比较

    2023-07-15 00:45:13
  • 讲解MySQL数据库字符集出错的解决方法

    2008-12-02 14:32:00
  • MySQL优化教程之慢查询日志实践

    2024-01-24 11:22:57
  • JavaScript实现酷炫的鼠标拖尾特效

    2024-06-16 16:02:25
  • python中关于range()函数反向遍历的几种表达

    2023-07-09 20:23:33
  • Echarts实现单条折线可拖拽效果

    2024-04-10 13:59:17
  • Python实战之设计一个多功能办公小工具

    2023-05-26 02:54:11
  • Python基础之高级变量类型实例详解

    2021-11-09 11:07:40
  • Python使用Selenium模拟浏览器自动操作功能

    2021-01-19 07:55:33
  • JAVASCRIPT实现的WEB页面跳转以及页面间传值方法

    2023-08-23 04:56:09
  • 常用原生JS兼容性写法汇总

    2024-04-22 22:38:15
  • Php header()函数语法及使用代码

    2023-09-04 13:32:20
  • Centos6.x服务器配置jdk+tomcat+mysql环境(jsp+mysql)

    2023-06-14 12:14:13
  • django 外键model的互相读取方法

    2021-06-16 20:54:51
  • 【JS+CSS3】实现带预览图幻灯片效果的示例代码

    2024-04-10 13:55:15
  • 利用PHP实现词法分析器与自定义语言

    2024-05-02 17:33:35
  • python wsgiref源码解析

    2023-10-20 10:56:27
  • asp之家 网络编程 m.aspxhome.com