20. 字典如何判断键已存在

问题

在更新某个键的值前想判断键是否已经存在,我是这么写的:

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

我觉得这并不是最好的方式,有更好的方式吗?链接

回答一

indict中检查键的存在性的推荐方式

d = dict()

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

如果需要默认值,可以总是使用

d = dict()

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

如果想总是确保对于任何键都有一个默认值,你可以使用defaultdictcollections模块),像这样:

from collections import defaultdict

d = defaultdict(lambda: 0)

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

但是,一般而言,in关键字是最好的方法。

geekcircle            updated 2018-09-18 23:23:43

results matching ""

    No results matching ""