gpt4 book ai didi

python - 有没有巧妙的方法将 key 传递给 defaultdict 的 default_factory?

转载 作者:IT老高 更新时间:2023-10-28 21:32:45 26 4
gpt4 key购买 nike

一个类有一个带有一个参数的构造函数:

class C(object):
def __init__(self, v):
self.v = v
...

在代码中的某个地方,dict 中的值知道它们的键是很有用的。
我想使用带有传递给新生儿默认值的键的 defaultdict:

d = defaultdict(lambda : C(here_i_wish_the_key_to_be))

有什么建议吗?

最佳答案

它几乎不能称得上是 聪明 - 但子类化是你的 friend :

class keydefaultdict(defaultdict):
def __missing__(self, key):
if self.default_factory is None:
raise KeyError( key )
else:
ret = self[key] = self.default_factory(key)
return ret

d = keydefaultdict(C)
d[x] # returns C(x)

关于python - 有没有巧妙的方法将 key 传递给 defaultdict 的 default_factory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2912231/

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