在Python中删除可能存在或不存在的字典属性[重复]

Posted

技术标签:

【中文标题】在Python中删除可能存在或不存在的字典属性[重复]【英文标题】:Delete a property of a dictionary in Python that may or may not be present [duplicate] 【发布时间】:2014-08-21 07:43:28 【问题描述】:

当属性可能一开始不存在时,是否有一种简单的方法可以在 Python 中删除字典的属性?

如果使用del 语句,则结果为 KeyError:

a = 
del a['foo']
>>>KeyError: 'foo'

使用 if 语句有点冗长,您必须输入两次 'foo'a

a = 
if 'foo' in a:
    del a['foo']

寻找类似于dict.get() 的东西,如果该属性不存在,则默认为None 值:

a = 
a.get('foo')  # Returns None, does not raise error

【问题讨论】:

【参考方案1】:

你可以使用dict.pop,它允许你指定一个默认值,如果key不存在则返回:

>>> d = 1:1, 2:2
>>> d.pop(1, None)
1
>>> d
2: 2
>>> d.pop(3, None)  # No error is thrown
>>> d
2: 2
>>>

【讨论】:

以上是关于在Python中删除可能存在或不存在的字典属性[重复]的主要内容,如果未能解决你的问题,请参考以下文章

python~字典给默认属性赋值使用del关键字,删除赋值,恢复其默认属性

python中的字典

检查字典是不是存在于字符串中

如何检查 ViewBag 属性是不是为空或不存在

Python字典或者对象类型中键或者属性的获取与存在性判断

在 c# 中,如何测试/获取/设置可能存在或不存在的注册表项?