2012-10-21 106 views
0

我對下面的代碼蟒蛇基本語法布爾比較

smaller={} 
for(dest in a[neigbour].keys()) 

    if(dest in smaller.keys() == False): 
     print 'false' 
    } 

我不能讓這段代碼打印false ..我做錯了什麼問題?我不知道我是否正在做正確的事情來檢查語句dest in smaller.keys() == False

+2

你不應該在條件語句中用'False'或'True'進行比較。 –

+0

如果您正在測試字典中的成員身份,則不需要在d.keys()中使用'x,您可以簡單地使用'd in d'。同樣,'對於d:'中的x循環遍歷鍵。 – DSM

回答

4

你的Python語法是相當混亂。首先,你的for聲明後需要:,並且在Python中的for循環周圍使用大括號通常不是慣用的。此外,而不是比較False==,通常我們使用not

smaller = {} 
for dest in a[neighbour].keys(): 
    if dest not in smaller.keys(): 
     print('false') 
1

,以及你一直在考慮其他的答案,代碼可以寫成:

for key in a[neighbour].viewkeys() - smaller.viewkeys(): 
    print key, 'not found' 

這需要類似.viewkeys這樣的行爲的好處在a[neighbour]而不是在b中輕鬆地創建一組所有密鑰,然後循環。