mgi*_*son 35
通常,您将创建一个dict通过过滤旧构造的新构造.字典理解很适合这种事情:
{k: v for k, v in original.items() if v is not None}
Run Code Online (Sandbox Code Playgroud)
如果你必须更新原始字典,你可以这样做......
filtered = {k: v for k, v in original.items() if v is not None}
original.clear()
original.update(filtered)
Run Code Online (Sandbox Code Playgroud)
这可能是我能想到的最"干净"的原位移除方式(在迭代时修改dict是不安全的)
original.iteritems()在python2.x上使用
如果您需要递归删除 None 值,最好使用这个:
def delete_none(_dict):
for key, value in list(_dict.items()):
if isinstance(value, dict):
delete_none(value)
elif value is None:
del _dict[key]
elif isinstance(value, list):
for v_i in value:
delete_none(v_i)
return _dict
Run Code Online (Sandbox Code Playgroud)
根据@dave-cz 的建议,添加了支持列表类型值的功能。
| 归档时间: |
|
| 查看次数: |
15722 次 |
| 最近记录: |