gpt4 book ai didi

python - 不能 pickle 默认字典

转载 作者:IT老高 更新时间:2023-10-28 20:36:17 28 4
gpt4 key购买 nike

我有一个如下所示的默认字典:

dict1 = defaultdict(lambda: defaultdict(int))

问题是,我不能用 cPickle pickle 它。我在这里找到的解决方案之一是使用模块级函数而不是 lambda。我的问题是,什么是模块级功能?如何将字典与 cPickle 一起使用?

最佳答案

除了Martijn's explanation :

模块级函数是在模块级定义的函数,这意味着它不是一个类的实例方法,它没有嵌套在另一个函数中,它是一个有名字的“真实”函数,而不是一个 lambda 函数。

因此,要 pickle 您的 defaultdict,请使用模块级函数而不是 lambda 函数来创建它:

def dd():
return defaultdict(int)

dict1 = defaultdict(dd) # dd is a module-level function

你可以 pickle 它

tmp = pickle.dumps(dict1) # no exception
new = pickle.loads(tmp)

关于python - 不能 pickle 默认字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16439301/

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