del
语句删除一个元素:
del d[key]
但是,这会改变现有字典,因此字典的内容会针对具有对同一实例的引用的任何其他人进行更改。要返回新字典,请复制字典:
def removekey(d, key):
r = dict(d)
del r[key]
return r
dict()
构造函数生成一个浅表副本 。要进行深层复制,请参阅copy
模块 。
请注意,为每个 dict del
/ assignment / etc 制作副本。意味着你从恒定时间到线性时间,也使用线性空间。对于小的 dicts,这不是问题。但是如果你打算制作大量的 dicts 副本,你可能想要一个不同的数据结构,比如 HAMT(如本答案所述 )。
我认为您的解决方案是最好的方法。但是如果你想要另一个解决方案,你可以使用旧词典中的键创建一个新词典而不包括你指定的键,如下所示:
>>> 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'}