从字典中删除项目
有没有办法从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)