列表作为字典的值在调用 __missing__ 后得到 None

List as value of a dictionary gets None after calling __missing__

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

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

chapters = ChapterDict()

并想像这样存储值。

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

如果我这样做

print(chapters)

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

我的问题是什么?

append 将一个元素添加到列表中,然后 returns None 为给定键分配(覆盖)值。放弃作业,你应该没问题:

chapters[processed_key].append(section)