如何从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