如何检查Python字典中是否存在key

时间:2020-02-23 14:42:12  来源:igfitidea点击:

介绍

在许多情况下,我们可能需要在添加,访问或者修改键之前检查字典中某个键的存在,以避免出现错误。
对于该事前检查,我们可以采用以下任何一种方法。

因此,事不宜迟,让我们开始吧。

检查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。