我想在字典中測試一個鍵的存在,因爲'if key is not in dictionary:do something' 我已經多次完成這個操作,但是這次它的行爲很奇怪。python 2.7在字典中的存在
特別:
termCircuit = termCircuitMap[term]
回報KeyError異常
,當我在Eclipse中的PyDev調試這個代碼,我得到了以下(使用表達式):
term in termCircutiMap # prints False
term in termCircuitMap.keys() # prints True
不要任何人知道這是怎麼回事可能?我認爲,如果某個關鍵詞是'in',那麼它就在'字典'中。
我附上評估的屏幕截圖。
非常感謝解釋:)
這很奇怪......這兩個條件語句之間是否存在任何代碼? – 2013-04-24 19:02:39
如果您實際上連續運行這兩行,則不會解釋錯誤。 'aDict'中的key實際上比aDict.keys()中的'key快,優於'鍵,但它們都應該返回相同的值。是否有可能在這些檢查之間修改了字典? – 2013-04-24 19:02:42
你能展示一個演示問題的實際代碼的例子嗎?字典中的鍵的類型是什麼?如果密鑰是具有不兼容的散列/相等定義的對象,則這種行爲是可能的。 – BrenBarn 2013-04-24 19:03:07