问题描述:
最近在GitHub上学到了defaultdict(lambda: defaultdict(list))这个宝藏结构,具体细节就不介绍了。现在我想调用pickle模块保存具有上述结构的程序中间变量。但是报错了,具体错误忘记截图了
_pickle.PicklingError: Can't pickle <function <lambda> at 0x0000023732B44558>: attribute lookup <lambda> on __main__ failed
原因分析:
经过在Stack Overflow(宝藏网站)上面搜索经验贴后,我认为报错原因和lambda函数有关Can Python pickle lambda functions?
具体报错原因我没有仔细看,大家感兴趣的可以查看上述链接。
解决方案:
- 安装dill模块
pip install dill
- 引入dill模块
#两行都不能少,一定要这么写
import pickle
import dill as pickle