基于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 相关文章推荐
10种检测Python程序运行时间、CPU和内存占用的方法
Apr 01 Python
详解Python中for循环是如何工作的
Jun 30 Python
Python学习教程之常用的内置函数大全
Jul 14 Python
基于python绘制科赫雪花
Jun 22 Python
Python面向对象之接口、抽象类与多态详解
Aug 27 Python
漂亮的Django Markdown富文本app插件的实现
Jan 02 Python
在Python中居然可以定义两个同名通参数的函数
Jan 31 Python
python实现飞机大战小游戏
Nov 08 Python
wxPython色环电阻计算器
Nov 18 Python
用python求一重积分和二重积分的例子
Dec 06 Python
python 代码运行时间获取方式详解
Sep 18 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
Feb 06 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生成的一个树叶图片画图例子
2014/04/16 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
JS关键字球状旋转效果的实例代码
2013/11/29 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
Javascript实现计算个人所得税
2015/05/10 Javascript
Jquery效果大全之制作电脑健康体检得分特效附源码下载
2015/11/02 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
javascript深拷贝和浅拷贝详解
2017/02/14 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
解决Layui数据表格显示无数据提示的问题
2019/11/14 Javascript
Vue+Vuex实现自动登录的知识点详解
2020/03/04 Javascript
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
Python分析学校四六级过关情况
2017/11/22 Python
Python中装饰器高级用法详解
2017/12/25 Python
pandas多级分组实现排序的方法
2018/04/20 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
python中slice参数过长的处理方法及实例
2020/12/15 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
德国最大的拼图在线商店:Puzzle.de
2016/12/17 全球购物
Ootori在线按摩椅店:一家专业的按摩椅制造商
2019/04/10 全球购物
抽象方法、抽象类怎样声明
2014/10/25 面试题
会计工作心得体会
2014/01/13 职场文书
《与象共舞》教学反思
2014/02/24 职场文书
商超业务员岗位职责
2014/03/12 职场文书
文明生主要事迹
2014/05/25 职场文书
啤酒节策划方案
2014/05/28 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书
学雷锋日活动总结
2015/02/06 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS