基于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实现提取文章摘要的方法
Apr 21 Python
一个基于flask的web应用诞生(1)
Apr 11 Python
Python实现JSON反序列化类对象的示例
Jan 31 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
解决Python2.7中IDLE启动没有反应的问题
Nov 30 Python
简单了解Django ContentType内置组件
Jul 23 Python
python创建与遍历List二维列表的方法
Aug 16 Python
python爬虫 2019中国好声音评论爬取过程解析
Aug 26 Python
python线程中的同步问题及解决方法
Aug 29 Python
使用pytorch和torchtext进行文本分类的实例
Jan 08 Python
Python 虚拟环境工作原理解析
Dec 24 Python
python实现自动清理文件夹旧文件
May 10 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中文件上传的安全问题
2006/10/09 PHP
php INI配置文件的解析实现分析
2011/01/04 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
PHP的拦截器实例分析
2014/11/03 PHP
用JavaScript实现UrlEncode和UrlDecode的脚本代码
2008/07/23 Javascript
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
jQuery侧边栏实现代码
2016/05/06 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
python实现图书借阅系统
2019/02/20 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
django模板获取list中指定索引的值方式
2020/05/14 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
英国女性时尚精品店:THE DRESSING ROOM
2018/05/23 全球购物
报告会主持词
2014/04/02 职场文书
小学语文国培研修日志
2015/11/13 职场文书
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
2023/05/07 HTML / CSS