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

如何从Python字典中删除键?

赵健柏
2023-03-14

从字典中删除键时,我使用:

if 'key' in my_dict:
    del my_dict['key']

有没有一个简单的方法可以做到这一点?

共有3个答案

钱哲茂
2023-03-14

我花了一些时间弄清楚my_dict.pop(“key”,None)到底在做什么。因此,我将添加以下内容作为一个答案,以节省其他人搜索谷歌的时间:

如果key在字典中,删除它并返回它的值,否则返回default。如果未给出default并且字典中没有键,则会引发keyerr

文件编制

满昊然
2023-03-14

特别是回答“有没有一个单行的方法来做这件事?”

if 'key' in my_dict: del my_dict['key']

...嗯,你问了;-)

但是,您应该考虑,从dict中删除对象的这种方式不是原子的--在if语句期间,'key'可能在my_dict中,但可能在执行del之前被删除,在这种情况下,del将失败,并出现keyerr。鉴于此,使用dict.pop或类似于

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

当然,这绝对不是一句台词。

西门正平
2023-03-14

要删除键而不管它是否在字典中,请使用dict.pop()的双参数形式:

my_dict.pop('key', None)

如果字典中存在key,则返回my_dict[key],否则返回none。如果未指定第二个参数(即my_dict.pop('key'))且key不存在,则引发keyerr

若要删除保证存在的密钥,还可以使用

del my_dict['key']

如果键不在字典中,这将引发keyerr

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

  • 问题内容: 在Python上进行迭代时从字典中删除项目是否合法? 例如: 这个想法是从字典中删除不满足特定条件的元素,而不是创建一个新字典,该字典是正在迭代的字典的子集。 这是一个好的解决方案吗?有没有更优雅/更有效的方法? 问题答案: 此答案不适用于,并且会给出。 :字典在迭代过程中更改了大小。 发生这种情况是因为返回的是迭代器而不是列表。正如评论中指出的那样,只需将其转换为列表即可,它应该可以

  • 问题内容: 如果我有词典列表,请说: 并且我想删除具有2(或name )的字典,以编程方式解决此问题的最有效方法是什么(也就是说,我不知道列表中条目的索引,因此它可以)只是被弹出)。 问题答案: 编辑 :由于对此代码的性能提出了一些疑问(一些基于对Python的性能特征的误解,一些基于超出给定规范的假设,即列表中仅存在一个dict,其key的值为2) id”),我希望在此方面给您保证。 在旧的Li

  • 问题内容: 在Python上进行迭代时从字典中删除项目是否合法? 例如: 这个想法是从字典中删除不满足特定条件的元素,而不是创建一个新字典,该字典是正在迭代的字典的子集。 这是一个好的解决方案吗?有没有更优雅/更有效的方法? 问题答案: 此答案不适用于,并且会给出。 :字典在迭代过程中更改了大小。 发生这种情况是因为返回的是迭代器而不是列表。正如评论中指出的那样,只需将其转换为列表即可,它应该可以

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

  • 问题内容: 如何从以下词典中删除 u 字符? 此数据来自 find() 查询 这样看起来 问题答案: 某些数据库(例如Sqlite3)允许您定义转换器和适配器函数,因此您可以将文本检索为 str 而不是 unicode 。不幸的是,MongoDB没有为任何常见的类型(例如str,decimal或datetime)提供此选项: http://api.mongodb.org/python/curren