python递归生成式解包遍历嵌套列表 您所在的位置:网站首页 python遍历嵌套列表 python递归生成式解包遍历嵌套列表

python递归生成式解包遍历嵌套列表

#python递归生成式解包遍历嵌套列表| 来源: 网络整理| 查看: 265

本博文源于python基础,主要探讨递归生成式的妙用。嵌套列表在python描述树形结构时经常用到,做到对嵌套列表遍历是一件存在方法技巧的事情,因此我们今天就来实现一二。

实验结果

在这里插入图片描述

实验代码

最重要双for循环中内循环调用本身基线递归

def flattern(nested): try: for sublist in nested: for elememt in flattern(sublist): yield elememt except TypeError: yield nested if __name__ == '__main__': lst1 = [[[1],2],3,4,5,[6,[7]],8] print("原始列表.....") print(lst1) print('嵌套遍历之后.....') lst2 = list(flattern(lst1)) print(lst2)

上面的效果是适应与数字版本,但如果遇到字符呢,读过上面源码的小伙伴知道,这绝对崩了,比如 已经泛红一片 在这里插入图片描述 为了处理这个,修改代码,增加异常处理即可。

最终代码 def flattern(nested): result = [] try: try:nested + '' except TypeError:pass else: raise TypeError for sublist in nested: for elememt in flattern(sublist): yield elememt except TypeError: yield nested if __name__ == '__main__': lst1 = [[["dfasfa"],2],3,4,5,[6,[7]],8] print("原始列表.....") print(lst1) print('嵌套遍历之后.....') lst2 = list(flattern(lst1)) print(lst2) 最终效果

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有