有人可以简化这段代码背后的逻辑:
scores=[(similarity(prefs,person,other),other)
for other in prefs if other!=person ]
我尝试像这样实现它
for others in prefs:
if others!=person:
scores=[similarity(prefs,person, others),others]
但它只挑选了其他人的最后一个元素。 Btw prefs是一个2D字典,分数应该是一个元组列表。
答案 0 :(得分:5)
这与将元组的重复追加添加到列表中相同:
scores = []
for others in prefs:
if others!=person:
scores.append((similarity(prefs, person, others), others))