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


Posted in Python onJune 28, 2018

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

以上这篇基于Python中求和函数sum的用法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现html转ubb代码(html2ubb)
Jul 03 Python
在Python中使用列表生成式的教程
Apr 27 Python
Django+Ajax+jQuery实现网页动态更新的实例
May 28 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
Jul 09 Python
pytorch 模型可视化的例子
Aug 17 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
Sep 24 Python
python调用函数、类和文件操作简单实例总结
Nov 29 Python
Keras - GPU ID 和显存占用设定步骤
Jun 22 Python
python PIL模块的基本使用
Sep 29 Python
Python confluent kafka客户端配置kerberos认证流程详解
Oct 12 Python
python中的插入排序的简单用法
Jan 19 Python
pytorch 如何把图像数据集进行划分成train,test和val
May 31 Python
Python之list对应元素求和的方法
Jun 28 #Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
Jun 27 #Python
pandas进行数据的交集与并集方式的数据合并方法
Jun 27 #Python
python-str,list,set间的转换实例
Jun 27 #Python
Python将多个list合并为1个list的方法
Jun 27 #Python
python进行两个表格对比的方法
Jun 27 #Python
Python快速查找list中相同部分的方法
Jun 27 #Python
You might like
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
DOM XPATH获取img src值的query
2013/09/23 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
php多个文件及图片上传实例详解
2014/11/10 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
详解WordPress开发中get_header()获取头部函数的用法
2016/01/08 PHP
php常用数组函数实例小结
2016/12/29 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
js 调用父窗口的具体实现代码
2013/07/15 Javascript
js实现表格字段排序
2014/02/19 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
速记Python布尔值
2017/11/09 Python
Python-OpenCV基本操作方法详解
2018/04/02 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
通过代码实例了解Python异常本质
2020/09/16 Python
Python爬取微信小程序Charles实现过程图解
2020/09/29 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
日本一家专门经营各种箱包的大型网站:Traveler Store
2016/08/03 全球购物
季度思想汇报
2014/01/01 职场文书
应聘医药销售自荐书范文
2014/02/08 职场文书
2014员工聘用协议书(最新版)
2014/11/24 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
万能检讨书
2015/01/27 职场文书
2015年小学财务工作总结
2015/07/20 职场文书