def safe_delete_value(nested_list, value):
result = []
for sublist in nested_list:
new_sublist = []
for item in sublist:
if isinstance(item, list):
new_sublist.append(safe_delete_value(item, value))
else:
if item != value:
new_sublist.append(item)
result.append(new_sublist)
return result
nested_list = [[1, 2, 3], [4, 5, 6, 4], [7, 8]]
new_nested_list = safe_delete_value(nested_list, 4)
print(new_nested_list)
设计思路
- 遍历嵌套列表:使用两层循环,外层循环遍历每一个子列表,内层循环遍历子列表中的每一个元素。
- 处理嵌套结构:如果元素本身是一个列表,递归调用函数来处理这个子列表,以确保对所有层级的嵌套列表都进行正确处理。
- 删除目标值:对于非列表元素,检查其值是否为目标值,如果不是则添加到新的子列表中。
- 构建新的嵌套列表:将处理后的子列表添加到结果列表中,最终返回处理后的整个嵌套列表。
确保删除过程不会引发错误
- 类型检查:通过
isinstance(item, list)
检查元素是否为列表,确保在递归调用时不会对非列表元素产生错误。
- 值比较:只在值不相等时才添加元素到新的子列表,避免意外删除其他元素。这样可以确保在处理各种复杂嵌套结构时,删除操作能够安全进行,不会因为索引越界、类型不匹配等问题引发错误。