处理di中键错误的最佳方法

2024-05-14 09:26:28 发布

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

当我试图从dict中获取一个值时,我想知道处理keyerror的最佳方法

我需要这个,因为我的口述掌握了一些事件的计数。每当一个事件发生时,我从dict中获取计数,并将其递增并放回原处。

我在网上找到了一些解决方案,但它们是针对其他语言的。如有任何帮助,我们将不胜感激。

我正在处理keyerror异常。想知道处理字典中键错误的最佳方法。

注意:这不是计算列表中的项,而是在从dict检索值(不存在的值)时处理异常


Tags: 方法语言列表字典错误事件解决方案dict
3条回答

collections.defaultdict可以帮助构建一个pythonic代码:

count = collections.defaultdict(int) # => default value is 0
...
count[event] += 1 # will end to 1 on first hit and will increment later

最合适的数据结构是collections.Counter,其中缺少的键的隐式值为0

from collections import Counter
events = Counter()
for e in "foo", "bar", "foo", "tar":
    events[e] += 1

如果要使用dict,可以使用dict.get

mydict[key] = mydict.get(key, 0) + 1

或者你可以处理KeyError

try:
    mydict[key] += 1
except KeyError:
    mydict[key] = 1

或者你可以使用defaultdict

from collections import defaultdict
mydict = defaultdict(int)
mydict[key] += 1

相关问题 更多 >

    热门问题