我想在字典中测试一个键的存在,因为'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