在dict中找到一个值?

时间:2012-01-18 20:40:29

标签: python dictionary find

我正在尝试打印出一条消息。 如果找不到字典中的单词,那么它应该打印出一条消息而不是给出错误。 我的想法是

if bool(bool(dictionary[word])) == True:
    return dictionary[word]
else:
    print 'wrong'

但是当我写一些不在字典中的东西而不是它给出类似的东西

时它不起作用
Traceback (most recent call last):
  File "<pyshell#34>", line 1, in <module>
    translate_word('hous')
  File "H:\IND104\final\Project 4 - Italian-Spanish Translator\trial 1.py", line 21, in translate_word
    if bool(bool(dictionary[word])) == True:
KeyError: 'hous' 

那么如何打印出错误信息谢谢。

5 个答案:

答案 0 :(得分:10)

您需要使用in运算符来测试密钥是否在字典中。使用您的变量名称,这将成为:

if word in dictionary:

如果您想检查是否存在密钥并一次性检索该值,您可以使用get()方法:

value = dictionary.get(word)
if value is not None:
    ...

您可以提供自己的默认值get(),如果找不到该键,则返回该值。然后你可以这样编写你的代码:

print dictionary.get(word, 'wrong')

答案 1 :(得分:2)

实现目标的一种方法是try / except阻止:

try:
    return dictionary[word]
except KeyError:
    print 'wrong'
    return None

答案 2 :(得分:1)

if word in dictionary:
    return dictionary[word]
else:
    print("wrong")

答案 3 :(得分:0)

索引字典假设密钥已经存在,为了测试密钥是否在字典中,请尝试:

#Check to see if a key is in a dictionary
dictionary = {'key' : 123}
if 'key' in dictionary:
 #Do something
else:
 #Do something else

[dictionary]中的[key]现在是比以前的has_key([key])字典方法更受青睐的语法:reference

答案 4 :(得分:0)

学习一些异常处理的时间:

try:
    some_stuff()
except:
    print "Sorry, an error occured"