检查字典中是否已存在给定的密钥,并增加i

2024-04-24 22:04:32 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个字典,我如何才能确定该字典中的给定键是否已设置为非None值?

也就是说,我想这样做:

my_dict = {}

if (my_dict[key] != None):
  my_dict[key] = 1
else:
  my_dict[key] += 1

也就是说,如果已经有一个值,我想增加这个值,否则设置为1。


Tags: keynoneif字典myelsedict
3条回答

我个人喜欢使用setdefault()

my_dict = {}

my_dict.setdefault(some_key, 0)
my_dict[some_key] += 1

我更喜欢用一行代码。

my_dict = {}

my_dict[some_key] = my_dict.get(some_key, 0) + 1

字典有一个函数get,它接受两个参数-所需的键,如果不存在则为默认值。我更喜欢这个方法而不是defaultdict,因为您只想处理在这一行代码中不存在密钥的情况,而不是在任何地方。

您正在寻找^{}(可用于Python 2.5+)。这个

from collections import defaultdict

my_dict = defaultdict(int)
my_dict[key] += 1

会做你想做的。

对于普通的Pythondicts,如果给定的键没有值,那么当访问dict时,您将notgetNone——aKeyError将被引发。因此,如果您想使用常规的dict,而不是使用您的代码

if key in my_dict:
    my_dict[key] += 1
else:
    my_dict[key] = 1

相关问题 更多 >