如何检查Python字典中是否存在key
介绍
在许多情况下,我们可能需要在添加,访问或者修改键之前检查字典中某个键的存在,以避免出现错误。
对于该事前检查,我们可以采用以下任何一种方法。
因此,事不宜迟,让我们开始吧。
检查key是否存在的方法
下面,我们提到了完成任务的最常见和最简单的五(5)种技术。
- 使用try-except代码块,
- " in"运算符
- get()方法,
- keys()方法,
- has_key()方法。
现在,我们将逐一逐一介绍它们。
1.使用try-except代码块
当我们访问的键不属于字典中现有键的集合时,会引发" KeyError"。
我们可以使用此事实来检查错误(使用异常处理),以检查字典中是否已存在键。
因此,在下面的代码示例中,我们使用了try-except代码块来尝试使用给定的键访问字典元素。
如果键存在,则不会引发任何异常,其他部分将被执行。
而如果遇到" KeyError",我们可以清楚地推断出该键不存在。
#Dictionary Initialisation My_Dict = {'Joy':78, 'John':96, 'Kyler':65, 'Sona':85} My_key = input("Enter the key to be searched: ") try: My_Dict[My_key] except KeyError: print("Key doesn't exist!") else: print("Key present!")
输出:
Enter the key to be searched: Kyler Key present!
其中由于"'Kyler'""是字典" My_Dict"中已经存在的键,因此不会引发KeyError。
因此,我们得到了期望的输出。
2.使用" in"运算符
Python的in操作符用于检查元素是否按顺序存在。
下面给出了使用相同语法的语法。
given_key in given_dictionary
其中如果在序列" given_dictionary"中(对于本文字典而言)存在" given_key",则上述代码段的评估结果为True。
如果不是,则为False。
看下面的例子。
它完美地说明了字典中" in"运算符的用法。
#Dictionary Initialisation My_Dict = {'Joy':78, 'John':96, 'Kyler':65, 'Sona':85} My_key = input("Enter the key to be searched: ") if My_key in My_Dict: print("Found!") else: print("Not Found!")
输出:
Enter the key to be searched: Joy Found!
3.使用get()方法
Python中的get()
方法返回给定键的值(如果该键在应用该方法的字典中)。
如果密钥不存在,则返回用户设置的默认值。
get(key[, default])
其中" key"是我们要搜索的key名称。
仔细查看下面给出的代码片段。
#Dictionary Initialisation My_Dict = {'Joy':78, 'John':96, 'Kyler':65, 'Sona':85} My_key = input("Enter the key to be searched: ") if My_Dict.get(My_key): print("Found!") else: print("Not Found!")
输出:
Enter the key to be searched: John Found!
从上面的输出中可以明显看出,字典" My_Dict"中已经存在"" John""。
4.使用keys()方法
Python字典的keys()方法返回字典密钥的新视图。
因此,通过结合使用此方法和in运算符,可以使用此方法检查Python字典中是否存在键。
下面是一个示例,可以使您更好地理解。
#Dictionary Initialisation My_Dict = {'Joy':78, 'John':96, 'Kyler':65, 'Sona':85} My_key = input("Enter the key to be searched: ") if My_key in My_Dict.keys(): print("Found!") else: print("Not Found!")
输出:
Enter the key to be searched: Sneh Not Found!
由于在这种情况下,给定的键不属于字典中存在的键集,因此得到的结果是负数。
5.使用has_key()方法
在Python 3.x版本中已省略了" has_key()"方法,因此只能在较旧的版本中使用。
因此,对于较旧的版本,我们可以使用此方法检查Python词典中是否存在键。
如果传递的键存在于字典中,则该方法返回" True"。
否则,返回False。
请看下面的例子。
#Dictionary Initialisation My_Dict = {'Joy':78, 'John':96, 'Kyler':65, 'Sona':85} My_key = "Sona" print(My_Dict.has_key(My_key)) #bool result if My_Dict.has_key(My_key): print("Found!") else: print("Not Found!")
输出:
True Found!
我们在这里可以看到,由于给定的键("Sona")存在,因此该方法返回True。