为了账号安全,请及时绑定邮箱和手机立即绑定

从字典中删除元素

从字典中删除元素

GCT1015 2019-09-18 11:10:52
有没有办法从Python中删除字典中的项目?另外,如何从字典中删除项目以返回副本(即,不修改原始文件)?
查看完整描述

3 回答

?
森林海

TA贡献2011条经验 获得超2个赞

该del语句删除了一个元素:


del d[key]

但是,这会改变现有字典,因此字典的内容会针对具有对同一实例的引用的任何其他人进行更改。要返回新字典,请复制字典:


def removekey(d, key):

    r = dict(d)

    del r[key]

    return r

该dict()构造使得浅拷贝。要进行深层复制,请参阅该copy模块。


请注意,为每个字典del/作业/等制作副本。意味着你从恒定时间到线性时间,也使用线性空间。对于小的dicts,这不是问题。但是如果你打算制作大量的dicts副本,你可能想要一个不同的数据结构,比如HAMT(如本答案所述)。


查看完整回答
反对 回复 2019-09-18
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

pop 改变字典。


 >>>lol = {"hello":"gdbye"}

 >>>lol.pop("hello")

    'gdbye'

 >>> lol

     {}

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


查看完整回答
反对 回复 2019-09-18
?
largeQ

TA贡献2039条经验 获得超7个赞

我认为您的解决方案是最好的方法。但是如果你想要另一个解决方案,你可以使用旧词典中的键创建一个新词典而不包括你指定的键,如下所示:


>>> 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'}


查看完整回答
反对 回复 2019-09-18
  • 3 回答
  • 0 关注
  • 836 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信