从字典中删除元素

有没有办法从Python中删除字典中的项目?

另外,如何从字典中删除项目以返回副本(即,不修改原始文件)?


GCT1015
浏览 837回答 3
3回答

森林海

该del语句删除了一个元素:del d[key]但是,这会改变现有字典,因此字典的内容会针对具有对同一实例的引用的任何其他人进行更改。要返回新字典,请复制字典:def removekey(d, key):    r = dict(d)    del r[key]    return r该dict()构造使得浅拷贝。要进行深层复制,请参阅该copy模块。请注意,为每个字典del/作业/等制作副本。意味着你从恒定时间到线性时间,也使用线性空间。对于小的dicts,这不是问题。但是如果你打算制作大量的dicts副本,你可能想要一个不同的数据结构,比如HAMT(如本答案所述)。

回首忆惘然

pop 改变字典。 >>>lol = {"hello":"gdbye"} >>>lol.pop("hello")    'gdbye' >>> lol     {}如果你想保留原件,你可以复制它。

largeQ

我认为您的解决方案是最好的方法。但是如果你想要另一个解决方案,你可以使用旧词典中的键创建一个新词典而不包括你指定的键,如下所示:>>> 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'}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python