python json删除key - 如果密钥存在,则删除字典项目




2 Answers

你可以使用dict.pop

 mydict.pop("key", None)

请注意,如果没有给出第二个参数,即None ,则如果该键不在字典中,则引发KeyError 。 提供第二个参数可防止出现条件异常。

dict删除多个key python字典遍历

这个问题在这里已经有了答案:

除了以下情况外,是否还有其他方式可以删除字典中的项目:

if key in mydict:
    del mydict[key]

这个场景是我给出了一个从给定字典中删除的键的集合,但我不确定它们是否都存在于字典中。 以防万一我错过了更有效的解决方案。




方法:计算键删除,mutate字典

让我们调用keys来获取您要删除的keys的列表/迭代器。 我会这样做:

keys_to_remove = set(keys).intersection(set(mydict.keys()))
for key in keys_to_remove:
    del mydict[key]

你先计算所有受影响的项目并对它们进行操作。

方法:计算要保留的键,用这些键制作新的词典

我更喜欢创建一个新的字典来改变现有的字典,所以我可能也会考虑这个:

keys_to_keep = set(mydict.keys()) - set(keys)
new_dict = {k: v for k, v in mydict.iteritems() if k in keys_to_keep}

要么:

keys_to_keep = set(mydict.keys()) - set(keys)
new_dict = {k: mydict[k] for k in keys_to_keep}



Related

python python-2.7