def remove_none_values_iterative(data):
stack = [data]
while stack:
current = stack.pop()
if isinstance(current, dict):
for key, value in list(current.items()):
if value is None:
del current[key]
else:
stack.append(value)
elif isinstance(current, list):
current[:] = [item for item in current if item is not None]
stack.extend(reversed(current))
# 测试数据
nested_data = {
'name': None,
'age': 25,
'address': {
'city': 'New York',
'zip': '10001'
},
'friends': [
{'name': None, 'age': 23},
{'name': 'Bob', 'age': 27}
]
}
# 删除None值
remove_none_values_iterative(nested_data)
# 打印结果
print(nested_data)
标签:current,None,name,删除,nested,空值,data,stack,字典
From: https://www.cnblogs.com/dhxuy/p/17981413