Python 如何 检查 dictionary 中存在某个 key

Python 如何 检查 dictionary 中存在某个 key

使用 in 操作符

in 可以检查 d 中是否存在键a:

d = {"key1": 10, "key2": 23}

if "key1" in d:
    print("this will execute")

if "nonexistent key" in d:
    print("this will not")Code language: PHP (php)

注意直接使用key in d而不是key in d.keys()
这样性能好得多,因为它使用dictionary的 O(1) 散列而不是对键列表进行 O(n) 线性搜索

使用dict.get()方法

dict.get()用于在key不存在时提供默认值:

d = {}

for i in range(10):
    d[i] = d.get(i, 0) + 1

注意要为每个键提供默认值,可以使用dict.setdefault()

d = {}

for i in range(10):
    d[i] = d.setdefault(i, 0) + 1
或defaultdict从collections模块中使用:

from collections import defaultdict

d = defaultdict(int)

for i in range(10):
    d[i] += 1Code language: JavaScript (javascript)

1000 万次循环的 性能测试

'key' in dict 耗时 1.07 秒
dict.get('key')耗时 1.84 秒

发表评论