检查一个给定的键是否已经存在于字典中。

50 浏览
0 Comments

检查一个给定的键是否已经存在于字典中。

这个问题的答案是社区努力的成果。编辑现有答案以改善此帖子。它目前不接受新的答案或交互。

我想测试一下在更新字典中某个键的值之前,该键是否存在。

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

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

admin 更改状态以发布 2023年5月20日
0
0 Comments

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

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

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

0
0 Comments

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(10):
    d[i] = d.get(i, 0) + 1


为每个键提供默认值,可以在每个赋值中使用dict.setdefault()

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

或使用collections模块中的defaultdict

from collections import defaultdict
d = defaultdict(int)
for i in range(10):
    d[i] += 1

0