如何从Python字典中删除密钥?
当试图从字典中删除密钥时,我写道:
if 'key' in myDict:
del myDict['key']
有没有一种方法可以做到这一点?
使用dict.pop() :
my_dict.pop('key', None)
如果key存在于字典中,这将返回my_dict[key] ,否则返回None 。 如果未指定所述第二参数(即my_dict.pop('key')和key不存在,一个KeyError上升。
具体回答“是否有一条这样做的路线?”
if 'key' in myDict: del myDict['key']
...好吧,你问了;-)
但是,您应该考虑这种从dict中删除对象的方式不是原子的 - 在if语句中, 'key'可能位于myDict中,但在执行del之前可能会被删除,在这种情况下, del会发生KeyError失败。 鉴于此,或者使用dict.pop或者其他方法是最安全的
try:
del myDict['key']
except KeyError:
pass
当然,这当然不是一蹴而就的。
我花了一些时间才弄清楚my_dict.pop("key", None)到底在做什么。 所以我会加入这个答案以节省其他搜索时间:
pop(键[,默认])
如果键在字典中,请将其删除并返回其值,否则返回默认值。 如果未给出默认值并且键不在字典中,则会引发KeyError
文档
链接地址: http://www.djcxy.com/p/2901.html