我對下面的代碼蟒蛇基本語法布爾比較
smaller={}
for(dest in a[neigbour].keys())
if(dest in smaller.keys() == False):
print 'false'
}
我不能讓這段代碼打印false
..我做錯了什麼問題?我不知道我是否正在做正確的事情來檢查語句dest in smaller.keys() == False
我對下面的代碼蟒蛇基本語法布爾比較
smaller={}
for(dest in a[neigbour].keys())
if(dest in smaller.keys() == False):
print 'false'
}
我不能讓這段代碼打印false
..我做錯了什麼問題?我不知道我是否正在做正確的事情來檢查語句dest in smaller.keys() == False
反對dest in smaller.keys()
是dest not in smaller.keys()
。無需比較False
或True
:
if (dest not in smaller.keys()):
的文檔in
和not in
:http://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange
你的Python語法是相當混亂。首先,你的for
聲明後需要:
,並且在Python中的for
循環周圍使用大括號通常不是慣用的。此外,而不是比較False
與==
,通常我們使用not
:
smaller = {}
for dest in a[neighbour].keys():
if dest not in smaller.keys():
print('false')
,以及你一直在考慮其他的答案,代碼可以寫成:
for key in a[neighbour].viewkeys() - smaller.viewkeys():
print key, 'not found'
這需要類似.viewkeys
這樣的行爲的好處在a[neighbour]
而不是在b
中輕鬆地創建一組所有密鑰,然後循環。
你不應該在條件語句中用'False'或'True'進行比較。 –
如果您正在測試字典中的成員身份,則不需要在d.keys()中使用'x,您可以簡單地使用'd in d'。同樣,'對於d:'中的x循環遍歷鍵。 – DSM