为什么我不能从自我继承的词典中删除?

Why can't I delete from a self inherited dictionary?

提问人:Hoang Duy Tran 提问时间:8/12/2023 更新时间:8/12/2023 访问量:10

问:

我使用继承机制实现了一个字典,如下所示:

类 NoCaseDict(LoggingHandler, FrozenBase, OrderedDict): ....

然后,当我从文件加载数据时,我使用它来存储数据:

def makeLowerCaseKey(self, m: Message, using_string=False):
    if using_string:
        mid = m.string.lower()
    else:
        mid = m.id.lower()
    return (mid, m)

dict_data_list = [self.makeLowerCaseKey(m, 如果 len(m.id) > 0,则数据中的 m 为 using_string=self.is_using_string]

当我尝试做:

del self[key.lower()]

我遇到了异常,只打印出 [key.lower()] 部分。我不得不求助于此链接中提到的方法: (https://www.geeksforgeeks.org/python-ways-to-remove-a-key-from-dictionary/)

new_dict = {k: v for (k, v) in self.items() if (k != lower_key)}
self.clear() 
self.update(new_dict)

虽然冗长且有效,但我不知道为什么命令:

del self[key.lower()]

不起作用。你知道为什么吗? 我在 macOS 的 Monterey 上使用 Python 3.9.6。

python-3.x 字典 删除运算符

评论


答: 暂无答案