关于python:如何检查字典中是否存在键?

How can I check if a key exists in a dictionary?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Check if a given key already exists in a dictionary

假设我有一个这样的关联数组:{'key1': 22, 'key2': 42}

如何检查字典中是否存在key1


1
2
if key in array:
  # do something

关联数组在python中称为字典,您可以在stdtype文档中了解更多关于它们的信息。


另一种方法是has_key()(如果仍然使用python 2.x):

1
2
3
4
5
6
7
8
9
10
11
>>> a={"1":"one","2":"two
<div class="
suo-content">[collapse title=""]<ul><li>不推荐使用<wyn>has_key</wyn>,它在python 3中被删除,在python 2中速度只有原来的一半。</li><li>是的,但不是在2.x中。</li><li>是的,它在2.x中被弃用,是的,它在python 2.x中的速度是原来的一半。</li><li>不,它不适用于<=2.5+。</li><li>已弃用,适用于所有新代码。一旦它被否决,就不要再使用它。</li><li>"key in dict"形式自2.2起就存在。</li><li>我们可以继续讨论这个问题,事实仍然存在,它仍然是<=2.5的一个备选方案。</li><li>不推荐使用<wyn>has_key</wyn>,使用<wyn>if mykey in mydict:</wyn>。</li><li>2018年:你可以使用<wyn>.__contains__</wyn>,而不是<wyn>has_key</wyn>(在python 2和3中可用),我发现编写一个类似<wyn>foo = mydict['foo'] if mydict.__contains__('foo') else 'bar'</wyn>的程序很有用。</li><li>@容更简单,你可以用<wyn>foo = mydict.get('foo', 'bar')</wyn>。<wyn>in</wyn>操作符调用<wyn>__contains__</wyn>,所以这就更详细了。</li></ul>[/collapse]</div><p><center>[wp_ad_camp_1]</center></p><hr>
<p>
If you want to retrieve the key's value if it exists, you can also use
</p>

[cc lang="
python"]try:
    value = a[key]
except KeyError:
    # Key is not present
    pass

如果要在密钥不存在时检索默认值,请使用value = a.get(key, default_value)。如果要在密钥不存在的情况下同时设置默认值,请使用value = a.setdefault(key, default_value)