本篇文章为大家展示了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
上述内容就是sum求和函数怎么在Python中使用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注天达云行业资讯频道。