如果是我,应该会这么写:
originData = { 'a': None, 'b': None, 'c': 5, 'list': [{ 'a': 1, 'b': None}], 'dict': { 'a': 1, 'b':None}}
def remove_none(data):
if isinstance(data, dict):
return {
k: remove_none(v)
for k, v in data.items()
if v is not None
}
elif isinstance(data, list):
return [
remove_none(v)
for v in data
if v is not None
]
else:
return data
print(remove_none(originData))
不做就地修改,利用字典和列表推荐简化程序处理逻辑。
想知道编写优雅Python代码的秘密?请关注我的专栏:Python源码深度剖析 !
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…