【发布时间】:2020-11-22 19:00:38
【问题描述】:
这可能是一个非常基本的问题,但很难找到正确的答案。我有一个名为 raw_data 的 Python 字典,并按如下方式分别提取键:
features = raw_data.keys()
需要删除键的一些特定元素。
del features[137]
del features[160]
del features[181]
上面的代码却抛出了一个错误:
'dict_keys' object doesn't support item deletion
删除键形式字典键对象的正确方法是什么?
【问题讨论】:
-
features = list(raw_data.keys()); del ...。如果你想从 dict 本身中删除键del raw_data[key] -
转换成
list然后删除有什么问题吗? -
@Ravi:如果这是为 Python 2 编写的代码(其中
.keys()返回一个list),只需将.keys()的原始用法包装在list构造函数中。 -
您真的要从 dict_view 对象中删除,而不是从字典本身中删除吗?如果是,这背后的原因是什么?
-
@ShadowRanger 你是对的。这是 Python 2 中的代码存在的问题。在 Python 2 环境中运行得非常好。
标签: python python-3.x dictionary