问题

我想在更新密钥的值之前测试字典中是否存在密钥. 我写了以下代码:

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

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

  最佳答案

in 是测试 dict 中是否存在密钥的预期方法。

 d = dict()

for i in range(100):
    key = i % 10
    if key in d:
        d[key] += 1
    else:
        d[key] = 1
 

如果您想要默认,您可以始终使用dict.get():

 d = dict()

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

....如果您想始终确保任何键的默认值,您可以从collections模块使用defaultdict,如下所示:

 from collections import defaultdict

d = defaultdict(int)

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

...但一般来说,in关键字是最好的方法.

  相同标签的其他问题

pythondictionary