2017-05-18 177 views
0
planta_accesibles = probpl.RelacionRigida(
     lambda a1, p1, p2: (a1,(p1,p2)) 
       in [('A0', ('0', '1', '2', '3', '4'))] 
     ) 

我想搜索,如果p1和p2都包含在我的名單「A0」,但蟒蛇比較元組「P1,P2」與元組「0,1」。如果我堅持「'2','3','4'」,我不會採取正確的反應。比較元組列表

對不起,我的英語。

+2

歡迎的話,請檢查[如何創建一個最小的,完整的,並且可驗證的示例](HTTP://計算器.com/help/mcve)和[我如何問一個好問題](http://stackoverflow.com/help/how-to-ask),以便提高您獲得答案的機會。 – Nuageux

+1

什麼是函數:'probpl.RelaciónRígida()'?看來你把它傳遞給一個lambda函數作爲它的參數。你能給這個lambda函數一個例子輸入和輸出嗎? – Aaron

+0

由於我們已經討論過該功能,請避免在代碼中使用高位ASCII字符。儘管這些日子他們的支持很普遍,但儘管如此,避免必須依賴這些方法是很好的做法(加上,在許多語言中,它們是不允許的)。 –

回答

1

我不知道probpl.RelaciónRígida()是什麼,所以我不知道需要什麼,但我想我可以識別你想用lambda函數做什麼(隨時糾正我或問問題)。

它看起來像你想要一個名爲'A0'的列表,並測試它是否包含p1p2。在這種情況下,我相信一本字典會滿足您的需求不是一個嵌套的元組更好:

ref = {"A0": ("0", "1", "2", "3", "4")} 

這使您可以測試字典,以確定它是否包含一個值(你的元組)與關鍵a1相關:

a1 in ref 

確定字典包含a1輸入後,你可以測試條目是否包含p1p2

(p1 in ref[a1]) and (p2 in ref[a1]) #parenthesis are only added for readability 

如果我把它添加到您現有例如,它會看起來像:

ref = {"A0": ("0", "1", "2", "3", "4")} 
test = lambda a1, p1,p2: (a1 in ref) and (p1 in ref[a1]) and (p2 in ref[a1]) 
planta_accesibles = probpl.RelaciónRígida(test)