从字典中删除项目

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

我知道我可以在字典上调用.pop ,但是这会返回已删除的项目。 我正在寻找的是返回字典减去元素的问题。

目前,我有一个帮助函数,它接受有问题的字典作为参数,然后返回一个字典,删除该项目,是否有更优雅的解决方案?


del语句删除一个元素:

del d[key]

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

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

dict()构造函数创建一个浅拷贝。 要进行深层复制,请参阅copy模块。


pop突变字典。

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

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


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

>>> 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'}
链接地址: http://www.djcxy.com/p/9403.html

上一篇: Delete an item from a dictionary

下一篇: Determine function name from within that function (without using traceback)