Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查当前密钥是否在字典中?_Python_Python 2.7_Dictionary - Fatal编程技术网

Python 如何检查当前密钥是否在字典中?

Python 如何检查当前密钥是否在字典中?,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,我想在代码中添加一个if语句,该语句将检查当前键是否在我的字典中。我尝试过这样做: if key in my_dict: pass 但它不起作用。那么,如何检查当前密钥是否在我的字典中 谢谢。pass是一个空操作-当它被执行时,什么也不会发生 你的方式是正确的: 有些人可能想这样做。但不要这样做 >>> a = {'a': 1, 'b':2} >>> a {'a': 1, 'b': 2} >>> a.keys() ['a', 'b'

我想在代码中添加一个if语句,该语句将检查当前键是否在我的字典中。我尝试过这样做:

if key in my_dict:
    pass
但它不起作用。那么,如何检查当前密钥是否在我的字典中

谢谢。

pass是一个空操作-当它被执行时,什么也不会发生

你的方式是正确的:

有些人可能想这样做。但不要这样做

>>> a = {'a': 1, 'b':2}
>>> a
{'a': 1, 'b': 2}
>>> a.keys()
['a', 'b']
>>> if 'a' in a.keys():
...     print 'hello'
... 
hello
>>> 
别这样


正如Martijin所指出的,这很慢,因为您必须先为元素生成列表,然后再为元素生成检查列表。

这就是pythonical的方法。您可能对以下内容有误解:

pass语句不执行任何操作。当语法上需要语句,但程序不需要操作时,可以使用它


请注意,您可能会看到类似于我的dict.has\u keykey的内容。这曾经使用过,但不应与python 2.7及更高版本一起使用。

这是正确的方法。你怎么知道它不起作用?你能发布你当前的代码吗?你需要向我们展示一些示例字典和键,我们对此没有任何意见。如果您的文字代码使用pass,那么即使测试返回True,您的代码也不会显示任何输出。如果键不在字典中,您希望发生什么?最好使用my_dict.getkey、default_值或my_dict.setdefaultkey、default_值此处不使用dict.key;在a中只使用“a”;在a.keys中使用“a”不仅是多余的,而且速度也较慢,因为现在您必须在列表中扫描密钥。根据字典测试的是O1恒定的复杂度,比列表扫描的复杂度要便宜得多。谢谢你的指点!
>>> a = {'a': 1, 'b':2}
>>> a
{'a': 1, 'b': 2}
>>> a.keys()
['a', 'b']
>>> if 'a' in a.keys():
...     print 'hello'
... 
hello
>>>