扁平化的代码不会生成一个生成器对象,它只是将嵌套的列表展开成一个单层的列表。如果想要生成一个生成器对象,可以使用生成器表达式或者生成器函数。
以下是使用生成器表达式的示例代码:
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
generator_object = (num for sublist in nested_list for num in sublist)
for num in generator_object:
print(num)
输出:
1
2
3
4
5
6
7
8
9
以下是使用生成器函数的示例代码:
def flatten_lists(nested_list):
for sublist in nested_list:
for num in sublist:
yield num
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
generator_object = flatten_lists(nested_list)
for num in generator_object:
print(num)
输出:
1
2
3
4
5
6
7
8
9
注意,生成器对象只能迭代一次,如果需要多次迭代,需要重新生成一个新的生成器对象。