在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
您可以使用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字典中删除一些键。键在列表中提供;我到目前为止的代码: