基于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 创建子进程模块subprocess详解
Apr 08 Python
研究Python的ORM框架中的SQLAlchemy库的映射关系
Apr 25 Python
PyCharm使用教程之搭建Python开发环境
Jun 07 Python
Django入门使用示例
Dec 12 Python
python中abs&map&reduce简介
Feb 20 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
Jun 22 Python
Python第三方Window模块文件的几种安装方法
Nov 22 Python
Python3 执行系统命令并获取实时回显功能
Jul 09 Python
Python爬取爱奇艺电影信息代码实例
Nov 26 Python
opencv resize图片为正方形尺寸的实现方法
Dec 26 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
Python爬虫与反爬虫大战
Jul 30 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
Windows下PHP的任意文件执行漏洞
2006/10/09 PHP
PHP 数据库树的遍历方法
2009/02/06 PHP
PHP正确配置mysql(apache环境)
2011/08/28 PHP
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
php curl_init函数用法
2014/01/31 PHP
php中memcache 基本操作实例
2015/05/17 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
javascript中length属性的探索
2011/07/31 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
2015/05/06 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
jQuery实现鼠标滑过点击事件音效试听
2015/08/31 Javascript
jquery判断当前浏览器的实现代码
2015/11/07 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
JS二分查找算法详解
2017/11/01 Javascript
实时监控input框,实现输入框与下拉框联动的实例
2018/01/23 Javascript
Angularjs实现多图片上传预览功能
2018/07/18 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
python使用pil生成图片验证码的方法
2015/05/08 Python
Python实现程序的单一实例用法分析
2015/06/03 Python
tensor和numpy的互相转换的实现示例
2019/08/02 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
django实现模型字段动态choice的操作
2020/04/01 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
中学生获奖感言
2014/02/04 职场文书
交通事故私了协议书
2014/04/16 职场文书
婚礼家长致辞
2015/07/27 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python