列表作为字典的值在调用 __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)
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)