1

所以我已经尝试了一段时间,但无法让它发挥作用。如果您查看图片,您会在 x 轴和 y 轴上看到 2 个人,这两个人都是他们对电影的评分。问题是我如何计算这些人之间的曼哈顿距离。

在此处输入图像描述

所以这就是我已经拥有的...... 编辑 我忘了说 prefs 是一个以 personname 作为键和第二个 dict 作为值的字典。第二个字典包含作为键的电影和作为值的评级.. 并且 person1 和 2 只是带有名称的字符串,可以在 prefs 中找到

def sum_manhattan(prefs,person1,person2):
    """Calculates the Manhattan distance between two critics"""
    total = 0
    ##assume person1 is the x axes and person 2 is the y axes
    x = prefs[person1]
    y = prefs[person2]

    for movie in x:
        if movie in y:
            total = abs(x[movie]-y[movie])
    return total

欢迎任何帮助:)

4

1 回答 1

1

根据 Alkini 发布的链接,我会说你应该替换

total = abs(x[movie]-y[movie])

total += abs(x[movie]-y[movie])

让事情发挥作用。

您发布的代码所做的是返回上一部电影评分之间差异的绝对值,而我认为您需要添加所有电影的评分差异。

于 2013-04-17T15:07:13.033 回答