从字典中删除元素

2022-09-05 00:48:28

如何在Python中从字典中删除项目?

在不修改原始字典的情况下,如何在删除项目的情况下获取另一个字典?


答案 1

del 语句删除一个元素:

del d[key]

请注意,这会改变现有字典,因此对于引用同一实例的任何其他人来说,字典的内容都会发生变化。要返回词典,请复制该词典:

def removekey(d, key):
    r = dict(d)
    del r[key]
    return r

构造函数创建浅层副本。要创建深层复制,请参阅复制模块dict()


请注意,为每个 dict/assignment/ etc. 制作一个副本意味着您将从恒定时间转换为线性时间,并且还使用线性空间。对于小字典,这不是问题。但是,如果您计划制作大量大型字典的副本,则可能需要不同的数据结构,例如HAMT(如本答案中所述)。del


答案 2

pop 会改变字典。

 >>> lol = {"hello": "gdbye"}
 >>> lol.pop("hello")
     'gdbye'
 >>> lol
     {}

如果您想保留原件,可以复制它。