2017-07-26 87 views
0

有人可以簡化這段代碼背後的邏輯:簡化Python列表理解

​​

我試圖推行它像這樣

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

但只挑選別人的最後一個元素。 Btw prefs是一個2D字典,分數應該是元組列表。

回答

5

這將是相同的重複使得追加的元組列表

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

哦好吧非常感謝。它工作正常。我想知道爲什麼在這裏應用兩個括號會有所作爲。當我用append函數的一對括號嘗試它時,它給了我一個TypeError。 –

+0

@ShonAufdaded parens將函數調用和「others」的返回值分組爲一個元組,否則表達式可能被認爲是不明確的。 –