Python嵌套列表解析式(又称列表推导式)写法剖析与应用举例
#嵌套列表解析式又称嵌套列表推导式,功能非常强大,但是初学者难以摸清其书写规则。 #以下实例展示了嵌套列表解析的写法。 #嵌套列表解析表达是的书写规则是层层嵌套。 #嵌套层的一般形式为: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嵌套列表解析式(又称列表推导式)写法剖析与应用举例相关推荐
- 列表生成式(列表解析式、列表推导式)
列表解析式(列表生成式.列表推导式) li =[] for i in range(0,101):li.append(i) print(li) # 用列表解析式.列表生成式.列表推导式 li =[i f ...
- 【Python 必会技巧】[i for i in range(1,10)] — 列表解析式,列表中使用 for 循环
经常会看到类似于 [i for i in range(1,10)] 的表达式,这种表达式称为列表解析(List Comprehensions),类似的还有字典解析.集合解析等等. 列表解析式是将一个列 ...
- 小牛叔讲Python第10章:化繁为简的推导式
上一篇:小牛叔讲Python第9章:函数是你走过的套路 下一篇:小牛叔讲Python第11章:函数的高级用法以及匿名函数 目录 前言 1.推导式的形式 2.生成器 - () 3.推导式与交互使用 4. ...
- 小白的Python 学习笔记(八)推导式详解
什么是推导式 大家好,今天我总结一下Python的推导式,首先让我们来看定义 推导式(comprehensions)是Python的一种独有特性,是可以从一个数据序列构建另一个新的数据序列的结构体.一 ...
- python 生成器装饰器_python: 生成器,装饰器以及列表推导式写法
1.连接字符串尽量用format,两个的时候可以用 + name = "lxw" age = 24 x = "{0}{1}".format(name, age) ...
- python 列表解析式_python列表解析式,字典解析式,集合解析式和生成器
一.列表解析式(列表推倒式): 功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表. 1 lst = [1, 3, 5, 8, 10] 2 ll = [x+x for x in ls ...
- python3列表推导式矩阵转置_python3进阶之推导式1之列表(list)推导式(comprehensions)...
1.前言 推导式,英文名字叫comprehensions,注意与comprehension(理解)只有s字母之差.推导式又可以叫解析式,推导式可以从一种数据序列构建新的数据序列的结构体.推导式分为,列 ...
- python进阶:switch语句、推导式与None类型
一.python实现switch语句 简单示例 适合一般情形的示例 二.推导式:由已知对象推出另一对象 列表推导式 列表推导式内一般不涉及函数(匿名函数),因为其本身就自带函数的特性 map可以是替代 ...
- python 学习汇总29:各种推导式( tcy)
python的各种推导式(轻量级循环) 2018 / 6 / 16 1.推导式用途: 推导式是从一个数据序列构建一个新的数据序列的结构体,类似于for 循环 列表/字典/集合推导式优于 map/fil ...
最新文章
- hive同时不包含一些字符串_Hive中常用的字符串操作
- 摄像头动态锁定(Python)
- juniper接口打环测试
- Android访问WCF服务(使用json实现参数传递)
- 网络安全隐性杀手:三类危险的TXT文件
- SOA架构设计经验分享—架构、职责、数据一致性
- php 链接远程oracle,PHP连接远程oracle输出数据
- 深度技术win11旗舰稳定版v2021.07
- python学习笔记-day6-【python如何写excel表】
- C++中的STL和MFC
- VS2010下安装Cocos2dx完整教程(原)
- 2010-05-19 项目升级计划
- Python笔记-基础语法(个人资料整理)
- 动态主题模型(Dynamic Topic Models, DTM)
- 联发科正式发布Helio P23/P30 SoC:GPU、基带大升级
- 02.yuyv转rgb888代码优化
- NOIP提高组 单峰
- Win10关闭登录面板毛玻璃效果
- 【案例】某市社会治理网格化智慧工作平台建设案例
- maven 引用其他项目引用的包出现BOOT-INF问题