首页 > 解决方案 > 调用 __missing__ 后,作为字典值的列表变为无

问题描述

class ChapterDict(dict):
    def __missing__(self, key):
        res = self[key] = []
        return res

我有这个自定义词典。如果键尚不存在,则应创建新的键:值对,而值应为空列表(字符串)。稍后我有我的实例

chapters = ChapterDict()

并希望存储这样的值。

chapters[processed_key] = chapters[processed_key].append(section)

如果我做

print(chapters)

结果我得到{'0': None, '1': None, '2': None, '3': None}了,所以键是正确的,但列表是None.

我的问题是什么?

标签: pythonlistdictionarynonetype

解决方案


append将元素添加到列表并返回None,然后您为给定键分配(覆盖)值。放弃分配,你应该没问题:

chapters[processed_key].append(section)

推荐阅读