Python 检查dict中是否定义了密钥
所以我有一个Python 检查dict中是否定义了密钥,python,Python,所以我有一个p=dict()。我有以下代码: def someFunction(): P['key'] += 1 '''do other task''' 检查是否定义了p['key'],最简单的方法是什么 我检查了,但我不确定这是否回答了我的问题。您应该使用集合模块中的defaultdict from collections import defaultdict d = defaultdict(int) d[0] = 5 d[1] = 10 for i in range(3
p=dict()
。我有以下代码:
def someFunction():
P['key'] += 1
'''do other task'''
检查是否定义了p['key']
,最简单的方法是什么
我检查了,但我不确定这是否回答了我的问题。您应该使用集合模块中的
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
检查普通dict的两种主要方法: “三思而后行”的范例。当然,else语句不是必需的,除非您想定义一些替代行为:
if 'key' in P:
P['key'] += 1
else:
pass
“请求原谅比允许更容易”的范例:
try:
P['key'] += 1
except KeyError:
pass # Or do something else
或者,您可以按照建议使用
defaultdict
。通常我会使用
if some_key in some_dict:
print("do something")
高级用法:若你们有字典,键是字符串,值是列表。当键存在时,您希望将元素添加到键关联值列表中。所以你可以
some_dict[some_key] = some_dict.get(some_key, []) + [new_item];
当然,这假设OP想要检查P中的
'key'的原因是决定他是否应该使用+=1
或=1
:)@dano,不是真的。您只需将构造函数修改为defaultdict,如sodefaultdict(lambda:1)
@brunsgaard它确实假设OP想要初始化不存在的值,而不是跳过它(或做其他事情)。@JesseMu对,这就是我的意思。