python - 如何用键初始化defaultdict?

标签 python defaultdict python-collections

我有一个列表字典,它应该用默认键初始化。我猜,下面的代码不太好(我的意思是,它可以工作,但我不觉得它是用 pythonic 方式编写的):

d = {'a' : [], 'b' : [], 'c' : []}

所以我想使用一些像 defaultict 这样更像 pythonic 的东西:

d = defaultdict(list)

但是,我看到的每个教程都会动态设置新键。但在我的例子中,所有的键都应该从一开始就定义好。我正在解析其他数据结构,并且仅当结构中的特定键也包含在我的字典中时,我才将值添加到我的字典中。

如何设置默认键?

最佳答案

根据评论,我假设您想要一本符合以下条件的字典:

  1. 用一组键初始化,每个键都有一个空列表值
  2. 具有可以为不存在的键初始化一个空列表的 defaultdict 行为

@Aaron_lab 有正确的方法,但还有一个更简洁的方法:

d = defaultdict(list,{ k:[] for k in ('a','b','c') })

关于python - 如何用键初始化defaultdict?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42918740/

相关文章:

python - 如何使用 any() 函数检查变量是否与列表中的任何项目匹配?

python - 在设置项目时充当 defaultdict 但在获取项目时不充当 defaultdict 的嵌套字典

python - 谷歌存储 python API - 上传一个 StringIO 对象

python - 断言 'GDK_IS_DISPLAY (display)' 失败 - 无法确定以下参数 : data 的类型

python - 如何在 bokeh python 中捕获下拉小部件的值?

python - 在 defaultdict 中追加到字典

python - 如何检查对象的类型为 'dict_items' ?

python - 具有替换和最大出现约束的组合

python - 如何使用特定的数据结构作为 defaultdict 的 default_factory?