如果将任意多维列表转成一维列表
- 思路
- 定义一个多维列表
- 定义一个生成器,将列表传入
- 使用递归方法进行多维列表的循环,如果是列表就单个字符输出,如果是单个字符,就单个输出字符即可
代码如下:
nestedlist = [3,4,[2,3,4],[[2,4,5],[56,7]],[[1,2,3,4],[12,4],[3,5,7],[2,4,6]]]
print(nestedlist)
def enumlist(nestedlist):
try:
for sublist in nestedlist:
for ele in enumlist(sublist):
yield ele
except TypeError:
yield nestedlist
for num in enumlist(nestedlist):
print(num,end=' ')
![](https://img.haomeiwen.com/i20044978/f573fc551b7a5ce0.png)
总结
递归生成器的编写方法与递归函数类似,只需要处理元素值的时候需要使用yield 关键字
加油 2020-3-13
网友评论