提问人:Hoang Duy Tran 提问时间:8/12/2023 更新时间:8/12/2023 访问量:10
为什么我不能从自我继承的词典中删除?
Why can't I delete from a self inherited dictionary?
问:
我使用继承机制实现了一个字典,如下所示:
类 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。
答: 暂无答案
评论