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

静默地从python dict中删除键[duplicate]

谢裕
2023-03-14

我有一个python dict,我想从我的字典中自动删除none键,所以我想出了如下内容:

try:
    del my_dict[None]
except KeyError:
    pass

try:
    del my_dict['']
except KeyError:
   pass

如您所见,它的可读性较低,并且导致我编写重复的代码。所以我想知道python中是否有一个方法可以从一个dict中移除任何键,而不会抛出键错误?

共有3个答案

岳时铭
2023-03-14

您可以尝试:

d = dict((k, v) for k,v in d.items() if k is not None and k != '')

或删除所有类似空键

d = dict((k, v) for k,v in d.items() if k )
郦昆
2023-03-14

您可以使用dict.pop方法并忽略结果:

for key in [None, '']:
    d.pop(key, None)
王岳
2023-03-14

您可以这样做:

d.pop("", None)
d.pop(None, None)

弹出带有默认值的字典,而忽略该默认值。

 类似资料:
  • 有一个实体A引用(多对一)实体B,从B到A有反向(映射到)引用。还有一个引用A到C,反向引用C到A。当我发出entitymanager . remove(A)then flush()时,没有生成“delete ”!但是也没有例外。就像根本没有调用remove()一样。为什么会这样?如果在remove()之前我们从反向引用B.listOfA和C.listOfA中提取A,那么“delete”就像预期的

  • 问题内容: 我知道如何安全地从字典中删除一个条目。你做: 但是,我需要安全地从字典中删除多个条目。我正在考虑在元组中定义条目,因为我将需要多次执行此操作。 但是,我想知道是否有更聪明的方法来做到这一点? 问题答案: 为什么不这样: mattbornski使用dict.pop()提供了一个更紧凑的版本) 使用dict.pop:

  • 我在数据库表列中有手机号码,格式为,后面是,所以手机号码格式是这样的, 我有一个HashMap包含像这样的5个国家的国家代码, 我的豆子结构是这样的 现在,我的任务是从数据库表列中提取手机号码,并将其分成两部分,然后设置和,但国家代码长度(在地图键中)在3到4之间变化。这个检查可以通过使用和来完成,但我认为这不是正确的方法,那么解决这个问题的优雅(可能是签入)方法是什么呢?

  • 服务器收到了以第二个JSON为主体的请求,这是令人失望的。我注意到键被自动添加到对象中。 有没有人知道我该怎么解决这个问题?

  • 在阅读https://developer.android.com/kotlin/coroutines时,我偶然发现了以下警告: 警告:启动和异步处理异常的方式不同。因为async希望最终调用在某个时刻等待,所以它保留异常并作为等待调用的一部分重新抛出它们。这意味着如果您使用await从常规函数启动新的coroutine,您可能会静默地删除异常。这些被删除的异常不会出现在崩溃度量中,也不会在Logc

  • 问题内容: 从字典中删除键时,我使用: 有没有一种方法可以做到这一点? 问题答案: 要删除键而不管它是否在字典中,请使用以下两个参数的形式: 如果典中存在,则返回,None否则返回。如果第二个参数未指定(即)并且key不存在,则引发a。 要删除肯定存在的密钥,你还可以使用 如果关键字在字典中不存在,则会引发 。