检查Python字典中特定的键

6 投票
4 回答
4387 浏览
提问于 2025-04-17 00:33

有几种不同的方法可以检查一个Python字典里是否包含某个特定的键,也就是说,

d = {}

if key in d:

if d.contains(key):

if d.has_key(key):

如果一个语言允许你用几种不同的方式做同一件事,那就有点傻,除非每种方法做的事情完全不同。有人能对上面提到的三种方法进行对比吗?它们有什么不同?

4 个回答

7

方法#1是大家公认的做法。方法#2其实并不存在,至少在我知道的Python版本中是这样;我很想知道你是在哪里看到的。方法#3以前是大家认可的做法,但现在已经被淘汰了。

所以其实就只有一种方法。

12

它们其实都是一样的,之所以存在是因为历史原因。不过你应该使用 key in d 这种写法。

5

d.__contains__(key) 是用来实现 key in d 的功能的(因为 in 操作符会调用字典的 __contains__ 方法)

has_key 已经不推荐使用了,它的功能和 __contains__ 是一样的

撰写回答