当前位置: 首页 > 知识库问答 >
问题:

删除Python中可能存在也可能不存在的字典的属性[duplicate]

丌官星渊
2023-03-14

在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个答案

阴高寒
2023-03-14

您可以使用dict.pop,它允许您指定一个默认值,以便在键不存在时返回:

>>> d = {1:1, 2:2}
>>> d.pop(1, None)
1
>>> d
{2: 2}
>>> d.pop(3, None)  # No error is thrown
>>> d
{2: 2}
>>>
 类似资料:
  • 我想删除文件,如果它存在的话。这样说合适吗 有更好的办法吗?单行道?

  • 我正在尝试调用restapi,但收到错误消息 org.thymeleaf.exceptions.TemplateInputException:错误解析模板[视图字段],模板可能不存在,或者可能无法由org.thymeleaf.engine.TemplateManager.resolve模板(TemplateManager.java:869)~[thymeleaf-3.0.12。RELEASE. j

  • 问题内容: 我要删除该文件(如果存在)。说的合适吗 有没有更好的办法?单行方式? 问题答案: 一种更pythonic的方式是: 尽管这花费了更多的行并且看起来很丑陋,但是它避免了不必要的调用并遵循过度使用异常的python约定。 可能值得编写一个函数为您执行此操作:

  • 问题内容: 我不确定默认的python安装是否是我一直在安装模块的安装,是否可能是导致Unicode字节大小兼容性错误的原因。简而言之,我已经使用Python 2.7.3安装了Numpy 1.7,并且当我尝试安装另一个使用Python和Numpy作为依赖项的程序时,出现了以下错误: 所以我想我有一个有冲突的unicode字节大小(2字节vs. 4字节)。我去检查一下我是否有冲突的Python版本,

  • 问题内容: 我试图重构一些旧代码…我重构了下面的当前代码,并突出显示了导致性能问题的语句。我试图用左外部联接重写该部分。 任何人都可以提供帮助,或者在可能的情况下提出更好的建议吗? 问题答案: 您有一个列级联,可防止任何索引的使用 尝试不存在将分别支持2列 之后,检查您的索引或课程… 这也是EXCEPT的一个很好的用法(ORDER BY像UNION一样结束了:感谢@Damien_The_Unbel

  • 我想从Python字典中删除一些键。键在列表中提供;我到目前为止的代码: