假设我有一个关联数组,例如:
{'key1': 22, 'key2': 42}
。如何检查字典中是否存在
key1
?#1 楼
if key in array:
# do something
Python中将关联数组称为字典,您可以在stdtypes文档中了解有关它们的更多信息。
评论
并且,如果密钥名称是字符串,请确保将其用引号引起来。
–日航
10-10-2在11:04
@astroanu,如果密钥不在数组中
–喷漆木
15年8月6日在14:38
这个答案中的“数组”一词从何而来?
– Ray Salemi
17年3月29日在17:19
按照公认的答案,这是可怕的。它绝不能回答问题,无非是文档的居高临下的链接。令人遗憾的是Google对此排名很高。
–cstrutton
17年7月12日在0:59
@cstrutton请提出改进建议。在撰写此答案时,我认为没有必要提供更多细节。
–拉斐·拉威克(RafałRawicki)
17年7月12日在11:13
#2 楼
另一种方法是has_key()
(如果仍在使用Python 2.X):>>> a={"1":"one","2":"two"}
>>> a.has_key("1")
True
评论
has_key已弃用,在python 3中已删除,在python 2中速度是后者的一半
–aaronasterling
2010年10月2日,11:10
是的,它在2.x中已弃用,是的,在python 2.x中是它的一半。
–aaronasterling
10-10-2在11:44
不推荐使用,适用于所有新代码。一旦不推荐使用,就不要再使用了。
–aaronasterling
2010年10月2日,12:40
自2.2起就存在“字典中的键”形式
– Tim W.
2010-10-2 13:01
我们可以继续进行下去,事实仍然存在,它仍然是<= 2.5的替代选项。
–ghostdog74
2010-10-2 14:15
#3 楼
如果要检索键的值(如果存在),也可以使用try:
value = a[key]
except KeyError:
# Key is not present
pass
如果要在键不存在时检索默认值,请使用
value = a.get(key, default_value)
。如果要在密钥不存在的情况下同时设置默认值,请使用
value = a.setdefault(key, default_value)
。评论
应该注意的是,仅当您期望密钥将以100%的时间出现时,才应使用try / except情况。否则,如果in更漂亮且更有效。 +1提及其他可能性。
–aaronasterling
10-10-2在13:37
有趣的是,我记得我在官方文档中的某处读到,寻求宽恕比获得许可要好...
–扬尼克·哈曼(Yannic Hamann)
20 Jan 15'在6:36
从性能的角度来看,如果您要处理具有很多键的字典,则try / expect会更好
– Avo Asatryan
20 Mar 3 '20 at 7:52
评论
在python 3中,您可以仅在{'key1':22,'key2':42}中使用'key1'。keys()引用字典中的keys()方法