python – 是否可以使用lambda作为字典默认值?
发布时间:2020-05-23 16:21:16 所属栏目:Python 来源:互联网
导读:我正在尝试保留一个打开文件的字典,以便将数据拆分成单个文件.当我从字典中请求文件时,如果密钥不存在,我希望它被打开.但是,看起来我不能使用lambda作为默认值.例如files = {} for row in data: f = files.get(row.field1, lambda: open(row.field1, w)) f.wr
|
我正在尝试保留一个打开文件的字典,以便将数据拆分成单个文件.当我从字典中请求文件时,如果密钥不存在,我希望它被打开.但是,看起来我不能使用lambda作为默认值. 例如
这不起作用,因为f设置为函数,而不是结果.使用上述语法的setdefault也不起作用.除此之外我还能做些什么:
最佳答案
这个用例对于defaultdict来说太复杂了,这就是为什么我不相信Python stdlib中存在这样的东西.但是,您可以轻松地自己编写一个通用的“扩展”defaultdict,它将丢失的密钥传递给回调:
用法:
这适用于Python 2.7,不知道旧版本:)另外,不要忘记再次关闭这些文件: (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
