MST

星途 面试题库

面试题:Python列表删除元素安全机制在复杂数据结构中的拓展应用

有一个嵌套列表`nested_list = [[1, 2, 3], [4, 5, 6, 4], [7, 8]]`,现在要安全地删除所有嵌套列表中值为4的元素。请设计一个通用函数处理此类复杂数据结构的安全删除操作,并说明设计思路以及如何确保删除过程不会引发错误。
22.9万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
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)

设计思路

  1. 遍历嵌套列表:使用两层循环,外层循环遍历每一个子列表,内层循环遍历子列表中的每一个元素。
  2. 处理嵌套结构:如果元素本身是一个列表,递归调用函数来处理这个子列表,以确保对所有层级的嵌套列表都进行正确处理。
  3. 删除目标值:对于非列表元素,检查其值是否为目标值,如果不是则添加到新的子列表中。
  4. 构建新的嵌套列表:将处理后的子列表添加到结果列表中,最终返回处理后的整个嵌套列表。

确保删除过程不会引发错误

  1. 类型检查:通过isinstance(item, list)检查元素是否为列表,确保在递归调用时不会对非列表元素产生错误。
  2. 值比较:只在值不相等时才添加元素到新的子列表,避免意外删除其他元素。这样可以确保在处理各种复杂嵌套结构时,删除操作能够安全进行,不会因为索引越界、类型不匹配等问题引发错误。