从字典中删除元素
2011-04-30
2753857
如何从 Python 字典中删除一个项目?
在不修改原始字典的情况下,如何获取另一个已删除项目的字典?
另请参阅 如何从 Python 字典中删除键? ,了解有关删除可能尚不存在的项目(按键)的具体问题。
3个回答
del
语句
删除一个元素:
del d[key]
请注意,这会改变现有字典,因此对于引用同一实例的任何其他人,字典的内容都会发生变化。要返回 新 字典,请复制该字典:
def removekey(d, key):
r = dict(d)
del r[key]
return r
dict()
构造函数会进行
浅拷贝
。要进行深层复制,请参阅
copy
模块
。
请注意,为每个字典
del
/assignment/etc 进行复制意味着您将从恒定时间变为线性时间,并且还使用线性空间。对于小型字典,这不是问题。但如果您打算复制大量大型字典,您可能需要不同的数据结构,例如 HAMT(如
此答案
中所述)。
Greg Hewgill
2011-04-30
Crystal
2014-03-21
我认为您的解决方案是最好的方法。但如果您想要另一种解决方案,您可以使用旧字典中的键创建一个新字典,而不包含您指定的键,如下所示:
>>> a
{0: 'zero', 1: 'one', 2: 'two', 3: 'three'}
>>> {i:a[i] for i in a if i!=0}
{1: 'one', 2: 'two', 3: 'three'}
utdemir
2011-04-30