#嵌套列表解析式又称嵌套列表推导式,功能非常强大,但是初学者难以摸清其书写规则。
#以下实例展示了嵌套列表解析的写法。
#嵌套列表解析表达是的书写规则是层层嵌套。
#嵌套层的一般形式为:for outter in inner。根据需要解析的嵌套层次深度,此一般形式可以从左到右接续写若干个。
#嵌套层是从最左边的for开始,从左往右,层次由深层到浅层。
#前提条件:所有从叶结点的到根节点被筛选出来的对象,必须具有可迭代性。
#所谓的叶结点,就是具有最终具体值的非列表性数据的结点。
#所谓的根节点,就是最顶层的具有嵌套子结构的结点。例如下例中的lv2,lv3,lv4,lv4_a
lv2=[range(10),range(10,20)] #lv2表示嵌套层级为2的列表
print([e for lv1 in lv2 for e in lv1])
#输出结果为:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
print([e for lv1 in lv2 for e in lv1 if e%2==0])
#输出结果为:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]lv3=[[range(10),range(10,20)],[range(20,30),range(30,40)]] #lv3表示嵌套层级为3的列表
print([e for lv2 in lv3 for lv1 in lv2 for e in lv1 if e%3==0])
#输出结果为:[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39]#lv4表示嵌套层级为4的列表
lv4=[ [ [ [1,2],[3,4,5] ],[[6,7,8,9],[10,11,12,13,14] ] ],[ [ [15,16,17,18,19],[20,21,22,23] ],[ [24,25,26],[27] ] ] ]
print([e for lv3 in lv4 for lv2 in lv3 for lv1 in lv2 for e in lv1 if e%2==1])
#输出结果为:[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27]#lv4_a表示最大嵌套层级为4的列表,但是存在嵌套层级为3的叶结点。
#通过在嵌套的列表解析式中引入了条件
#此例的2个输出语句分别实现了如下功能:
# (1)得到了第4层级上叶节点的数值。(不要输出第3层级上的叶结点)。
# (2)得到了第3层级上叶节点的数值。(不要输出第4层级上的叶结点)。
lv4_a =[ [ [11, [1,2],[3,4,5] ],[[6,7,8,9],22,[10,11,12,13,14] ] ],[ [ [15,16,17,18,19],33,[20,21,22,23] ],[ [24,25,26],44,[27] ] ] ]
print([e for lv3 in lv4_a for lv2 in lv3 for lv1 in lv2 if isinstance(lv1,list)==True for e in lv1])
#输出结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
print([e for lv2 in lv4_a for lv1 in lv2 for e in lv1 if not isinstance(e,list)])
#输出结果为:[11, 22, 33, 44]

Python嵌套列表解析式(又称列表推导式)写法剖析与应用举例相关推荐

  1. 列表生成式(列表解析式、列表推导式)

    列表解析式(列表生成式.列表推导式) li =[] for i in range(0,101):li.append(i) print(li) # 用列表解析式.列表生成式.列表推导式 li =[i f ...

  2. 【Python 必会技巧】[i for i in range(1,10)] — 列表解析式,列表中使用 for 循环

    经常会看到类似于 [i for i in range(1,10)] 的表达式,这种表达式称为列表解析(List Comprehensions),类似的还有字典解析.集合解析等等. 列表解析式是将一个列 ...

  3. 小牛叔讲Python第10章:化繁为简的推导式

    上一篇:小牛叔讲Python第9章:函数是你走过的套路 下一篇:小牛叔讲Python第11章:函数的高级用法以及匿名函数 目录 前言 1.推导式的形式 2.生成器 - () 3.推导式与交互使用 4. ...

  4. 小白的Python 学习笔记(八)推导式详解

    什么是推导式 大家好,今天我总结一下Python的推导式,首先让我们来看定义 推导式(comprehensions)是Python的一种独有特性,是可以从一个数据序列构建另一个新的数据序列的结构体.一 ...

  5. python 生成器装饰器_python: 生成器,装饰器以及列表推导式写法

    1.连接字符串尽量用format,两个的时候可以用 + name = "lxw" age = 24 x = "{0}{1}".format(name, age) ...

  6. python 列表解析式_python列表解析式,字典解析式,集合解析式和生成器

    一.列表解析式(列表推倒式): 功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表. 1 lst = [1, 3, 5, 8, 10] 2 ll = [x+x for x in ls ...

  7. python3列表推导式矩阵转置_python3进阶之推导式1之列表(list)推导式(comprehensions)...

    1.前言 推导式,英文名字叫comprehensions,注意与comprehension(理解)只有s字母之差.推导式又可以叫解析式,推导式可以从一种数据序列构建新的数据序列的结构体.推导式分为,列 ...

  8. python进阶:switch语句、推导式与None类型

    一.python实现switch语句 简单示例 适合一般情形的示例 二.推导式:由已知对象推出另一对象 列表推导式 列表推导式内一般不涉及函数(匿名函数),因为其本身就自带函数的特性 map可以是替代 ...

  9. python 学习汇总29:各种推导式( tcy)

    python的各种推导式(轻量级循环) 2018 / 6 / 16 1.推导式用途: 推导式是从一个数据序列构建一个新的数据序列的结构体,类似于for 循环 列表/字典/集合推导式优于 map/fil ...

最新文章

  1. hive同时不包含一些字符串_Hive中常用的字符串操作
  2. 摄像头动态锁定(Python)
  3. juniper接口打环测试
  4. Android访问WCF服务(使用json实现参数传递)
  5. 网络安全隐性杀手:三类危险的TXT文件
  6. SOA架构设计经验分享—架构、职责、数据一致性
  7. php 链接远程oracle,PHP连接远程oracle输出数据
  8. 深度技术win11旗舰稳定版v2021.07
  9. python学习笔记-day6-【python如何写excel表】
  10. C++中的STL和MFC
  11. VS2010下安装Cocos2dx完整教程(原)
  12. 2010-05-19 项目升级计划
  13. Python笔记-基础语法(个人资料整理)
  14. 动态主题模型(Dynamic Topic Models, DTM)
  15. 联发科正式发布Helio P23/P30 SoC:GPU、基带大升级
  16. 02.yuyv转rgb888代码优化
  17. NOIP提高组 单峰
  18. Win10关闭登录面板毛玻璃效果
  19. 【案例】某市社会治理网格化智慧工作平台建设案例
  20. maven 引用其他项目引用的包出现BOOT-INF问题

热门文章

  1. 搭建SpringBoot服务器,在公司内网中使用
  2. 4.4.6 数组也能无锁:AtomicIntegerArray
  3. hadoop 分片与分块,map task和reduce task的理解
  4. Spring 事务配置5种方式
  5. 2012 winter training @HIT Day 2 解题报告
  6. unicode 字符串转成 TDesC-转贴
  7. 仿微信朋友圈项目梳理
  8. SpringBoot之静态资源访问
  9. 笔试小结---非对称加密算法
  10. 11 父子组件数据关系与状态提升