MST

星途 面试题库

面试题:Python列表非空判断在复杂数据结构中的应用

假设你有一个复杂的数据结构,其中包含嵌套的列表,例如 [[1, 2], [], [3, [4, 5]]],编写一个函数来递归判断这个复杂结构中所有内部列表是否都非空,如果有任何一个内部列表为空则返回False,否则返回True。并解释你在实现过程中如何处理不同层级的列表。
38.0万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
def check_all_non_empty(nested_list):
    for sublist in nested_list:
        if isinstance(sublist, list):
            if not sublist or not check_all_non_empty(sublist):
                return False
        else:
            continue
    return True

解释:

  1. 函数 check_all_non_empty 接收一个嵌套列表作为参数。
  2. 使用 for 循环遍历外层列表中的每一个元素。
  3. 对于每一个元素,使用 isinstance 判断其是否为列表。
  4. 如果是列表:
    • 首先检查该列表是否为空,如果为空,直接返回 False
    • 否则,递归调用 check_all_non_empty 函数检查这个子列表内部的子列表,若递归调用返回 False,则整个函数返回 False
  5. 如果不是列表,直接跳过,继续检查下一个元素。
  6. 当循环结束,说明所有内部列表都非空,返回 True