要摆脱嵌套的for循环,可以使用迭代器和递归来实现。下面是一个示例代码:
def iterate_nested_lists(nested_lists):
# 创建一个迭代器来遍历嵌套的列表
it = iter(nested_lists)
# 定义一个递归函数来处理嵌套的列表
def process_nested_list(lst):
try:
# 获取下一个元素
item = next(lst)
# 如果是列表,则递归处理
if isinstance(item, list):
process_nested_list(iter(item))
else:
# 处理元素
print(item)
# 继续处理当前列表的下一个元素
process_nested_list(lst)
except StopIteration:
# 处理完所有元素后退出递归
return
# 开始处理嵌套的列表
process_nested_list(it)
# 测试代码
nested_lists = [[1, 2, 3], [4, [5, 6]], [7, [8, [9]]]]
iterate_nested_lists(nested_lists)
上述代码通过递归和迭代器的结合,可以遍历嵌套的列表而不使用嵌套的for循环。在process_nested_list函数中,我们首先使用next函数获取下一个元素,然后根据元素的类型进行不同的处理。如果是列表,则使用递归来处理;如果是其他类型的元素,则直接处理。当遇到StopIteration异常时,表示所有元素都已处理完毕,递归结束。这样就实现了不使用嵌套的for循环来遍历嵌套的列表。