使用try除了查找字典中是否存在密钥

时间:2018-03-01 20:52:23

标签: python dictionary try-catch

我想知道查找python字典中是否存在密钥的最佳方法,而不是一次又一次地访问整个密钥列表。我正在考虑尝试除外。有没有更好的方法?

4 个答案:

答案 0 :(得分:2)

只需使用in运算符:

print('some_key' in my_dict)

答案 1 :(得分:1)

Pythonic的方式是遵循EAFP(更容易要求原谅而非许可)原则。

这意味着假设密钥在dict中,如果不是,则捕获异常,如下所示:

my_dict = {"key": "value"}
try:
    print my_dict["badkey"]
except KeyError:
    print "No such key found"

答案 2 :(得分:0)

正如@Mureinik所说,你可以使用:

key_name in dict

返回true或false。但是,如果你非常想使用try和except,你可以使用:

try:
    x = dict[key_name]
except KeyError:
    # Handle error here

答案 3 :(得分:0)

对不起混淆的人。我知道我可以在dict.keys()中使用简单的key_name。但我必须搜索所有密钥才能知道该密钥是否存在。所以我正在考虑尝试,除了上面的那个。我的问题是,如果使用try是好的做法除外?有没有其他方法可以达到不访问所有密钥的相同目的?