gpt4 book ai didi

python - 在初始化时填充一个 defaultdict

转载 作者:太空狗 更新时间:2023-10-30 01:51:20 25 4
gpt4 key购买 nike

我怎样才能为 defaultdict 获取一个可调用工厂以允许用理解填充它?我认为这可能是不可能的,但我想不出一个很好的理由?

>>> def foo(*args):
... # TODO
...
>>> from collections import defaultdict
>>> thing = foo(defaultdict, int)
>>> d = thing((i, i*i) for i in range(3))
>>> d[2]
# should return 4
>>> d[-1]
# should return 0

最佳答案

default_factory 之后的任何 defaultdict 参数都被视为 dict 的参数:

>>> defaultdict(int, [(i, i*i) for i in range(5)])
defaultdict(<type 'int'>, {0: 0, 1: 1, 2: 4, 3: 9, 4: 16})

只需将理解传递给 defaultdict 并让它完成工作:

def defaultdict_factory_factory(default_factory):
def defaultdict_factory(*args, **kwargs):
return defaultdict(default_factory, *args, **kwargs)
return defaultdict_factory

或者使用functools.partial:

def defaultdict_factory_factory(default_factory):
return partial(defaultdict, default_factory)

关于python - 在初始化时填充一个 defaultdict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21103906/

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