检查字典中是否已存在给定的键
P粉489081732
P粉489081732 2023-10-08 11:38:59
0
2
840

我想在更新键的值之前测试字典中是否存在该键。 我编写了以下代码:

if 'key1' in dict.keys():
  print "blah"
else:
  print "boo"

我认为这不是完成这项任务的最佳方式。有没有更好的方法来测试字典中的键?

P粉489081732
P粉489081732

全部回复(2)
P粉674876385

直接使用key in my_dict而不是key in my_dict.keys()

if 'key1' in my_dict:
    print("blah")
else:
    print("boo")

这会更快,因为它使用字典的 O(1) 哈希,而不是执行 O(n )对键列表进行线性搜索。

P粉914731066

in 测试dict 中是否存在键:

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

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

if "nonexistent key" in d:
    print("this will not")

使用dict.get() 当键不存在时提供默认值:

d = {}

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

要为每个键提供默认值,请使用dict.setdefault() 在每个作业上:

d = {}

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

...或者更好,使用 defaultdict 来自 collections 模块:

from collections import defaultdict

d = defaultdict(int)

for i in range(100):
    d[i % 10] += 1
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板