gpt4 book ai didi

python - 如何 native 增加字典元素的值?

转载 作者:太空狗 更新时间:2023-10-30 00:31:28 25 4
gpt4 key购买 nike

在使用 Python 3 字典时,我总是不得不做这样的事情:

d=dict()
if 'k' in d:
d['k']+=1
else:
d['k']=0

我似乎记得有一种 native 方法可以执行此操作,但正在查看文档但找不到它。你知道这是什么吗?

最佳答案

这是 collections.defaultdict 的用例,这里简单地使用 int 可调用默认工厂。

>>> from collections import defaultdict
>>> d = defaultdict(int)
>>> d
defaultdict(<class 'int'>, {})
>>> d['k'] +=1
>>> d
defaultdict(<class 'int'>, {'k': 1})

defaultdict 被配置为在搜索丢失的键时创建项目。您为它提供一个可调用对象(此处为 int()),每当通过 __getitem__ 进行的查找传递了一个不存在的键时,它就会使用它来生成默认值。此可调用对象存储在名为 default_factory 的实例属性中。

如果您不提供 default_factory,您将像往常一样因丢失 key 而收到 KeyError

然后假设您想要一个不同的默认值,也许是 1 而不是 0。您只需传递一个提供所需起始值的可调用对象,在这种情况下非常简单

>>> d = defaultdict(lambda: 1)

这显然也可以是任何常规的命名函数。


但值得注意的是,如果在您的情况下您试图仅使用字典来存储特定值的计数,则 collections.Counter更适合这份工作。

>>> from collections import Counter
>>> Counter('kangaroo')
Counter({'a': 2, 'o': 2, 'n': 1, 'r': 1, 'k': 1, 'g': 1})

关于python - 如何 native 增加字典元素的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38486601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com