我正在读《编程集体智能》一书,下面的python代码到底是做什么的?在
# Add up the squares of all the differences
sum_of_squares=sum([pow(prefs[person1][item]-prefs[person2][item],2)
for item in prefs[person1] if item in prefs[person2]])
我正在尝试使用Java中的示例。在
Prefs是个人与电影收视率之间的映射,而电影分级则是姓名与收视率的另一个映射。在
Tags:
如果将对pow的调用替换为显式使用“**”求幂运算符,这可能是一个更具可读性的小:
去掉一些不变量也有助于提高可读性:
^{pr2}$最后,在Python的理解列表中,还可以去掉一个最新版本的表达式[,所以最终也不需要接受Python的sum:
现在看起来更直截了当了。在
具有讽刺意味的是,为了追求可读性,我们还进行了一些性能优化(两种通常互斥的努力):
这是伟大的语言还是什么?!在
Sum(第2行)一个列表,由第4-7行中为第11行指定的列表中定义的每个“项”计算的值组成,第13行的条件为真。在
首先,它构建一个包含以下结果的列表:
然后再加起来。在
相关问题 更多 >
编程相关推荐