简化Python列表理解

时间:2017-07-26 13:23:38

标签: python python-2.7 logic list-comprehension

有人可以简化这段代码背后的逻辑:

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字典,分数应该是一个元组列表。

1 个答案:

答案 0 :(得分:5)

这与将元组的重复追加添加到列表中相同:

scores = []
for others in prefs:
    if others!=person:
        scores.append((similarity(prefs, person, others), others))