检查是否定义了dict中的键

时间:2014-10-08 01:36:49

标签: python

所以我有P = dict()。我有以下代码:

def someFunction():
    P['key'] += 1
    '''do other task'''

检查P['key']是否已定义的最简单方法是什么?

我查了How do I check if a variable exists?,但我不确定这是否能回答我的问题。

3 个答案:

答案 0 :(得分:3)

检查普通字典的两种主要方法:

在你跳跃之前看看"范例。当然,除非您想要定义一些替代行为,否则不需要else语句:

if 'key' in P:
    P['key'] += 1
else:
    pass

更容易要求宽恕而不是许可"范例

try:
    P['key'] += 1
except KeyError:
    pass  # Or do something else

或者您可以按照建议使用defaultdict

答案 1 :(得分:1)

您应该使用集合模块中的defaultdict

from collections import defaultdict

d = defaultdict(int)
d[0] = 5
d[1] = 10

for i in range(3):
    d[i] += 1

# Note that d[2] was not set before the loop

for k, v in d.items():
    print('%i: %i' % (k,v))

打印:

brunsgaard@archbook /tmp> python test.py
0: 6
1: 11
2: 1

答案 2 :(得分:0)

通常我会用

检查关键状态
if some_key in some_dict:
    print("do something")

高级用法:如果您有字典,则键为字符串,值为列表。当密钥存在时,您希望将一个元素添加到密钥关联值列表中。所以你可以

some_dict[some_key] = some_dict.get(some_key, []) + [new_item];