基于Python列表解析(列表推导式)


Posted in Python onJune 23, 2018

列表解析——用来动态地创建列表

[expr for iter_var in iterable if cond_expr]

例子一:

map(lambda x: x**2, range(6))
[0, 1, 4, 9, 16, 25]
[x**2 for x in range(6)]
[0, 1, 4, 9, 16, 25]

列表解析式可以取代内建的map()函数以及lambda,而且++效率更高++。

例子二:

seq = [11, 10, 9, 8, 7, 6]
filter(lambda x: x % 2, seq)
[11, 9, 7]
[x for x in seq if x % 2]
[11, 9, 7]

例子三:

找出文本中最长的词

# 第一个最长的词
longest = ''
for word in text:
 if len(word) > len(longest):
  longest = word
#所有最长的词
maxlen = max(len(word) for word in text) # 生成器表达式
[word for word in text if len(word) == maxlen] #链表推导式

不足:列表解析得一个不足就是必要生成所有数据,用于创建整个列表。这可能对有大量数据得迭代其有负面效应。

++解决方法++:生成器表达式,通过结合列表解析和生成器解决了这个问题。

嵌套列表推导式

例一

all_data = [[1,3,5,7,9],
   [2,4,6,8,10]]
result = []
for nums in all_data:
 temp_num = [num for num in nums if num >= 5]
 result.extend(temp_num)

嵌套列表推导式

result = [num for nums in all_data for num in nums if num >= 5]

推导式中for的部分是按嵌套顺序排列的。

例二

some_tuples = [(1,2,3), (4,5,6), (7,8,9)]
flattened = [x for tup in some_tuples for x in tup]
flattened
[1,2,3,4,5,6,7,8,9]

以上这篇基于Python列表解析(列表推导式)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用urllib模块和pyquery实现阿里巴巴排名查询
Jan 16 Python
Python tempfile模块学习笔记(临时文件)
May 25 Python
解析Python中的eval()、exec()及其相关函数
Dec 20 Python
python实现支付宝当面付(扫码支付)功能
May 30 Python
Python字符串、整数、和浮点型数相互转换实例
Aug 04 Python
Python装饰器简单用法实例小结
Dec 03 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
Mar 11 Python
python3+PyQt5 数据库编程--增删改实例
Jun 17 Python
python编程进阶之类和对象用法实例分析
Feb 21 Python
python实现将字符串中的数字提取出来然后求和
Apr 02 Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 Python
Django启动时找不到mysqlclient问题解决方案
Nov 11 Python
python将回车作为输入内容的实例
Jun 23 #Python
Python 对输入的数字进行排序的方法
Jun 23 #Python
python获取命令行输入参数列表的实例代码
Jun 23 #Python
Python键盘输入转换为列表的实例
Jun 23 #Python
Python实现绘制双柱状图并显示数值功能示例
Jun 23 #Python
Python实现重建二叉树的三种方法详解
Jun 23 #Python
Python根据已知邻接矩阵绘制无向图操作示例
Jun 23 #Python
You might like
PHP4在Windows2000下的安装
2006/10/09 PHP
php修改指定文件后缀的方法
2014/09/11 PHP
php生成html文件方法总结
2014/12/01 PHP
基于PHP实现等比压缩图片大小
2016/03/04 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
Javascript事件实例详解
2013/11/06 Javascript
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
php+js实现倒计时功能
2014/06/02 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
bootstrap组件之按钮式下拉菜单小结
2017/01/19 Javascript
js实现3d悬浮效果
2017/02/16 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
妙用缓存调用链实现JS方法的重载
2018/04/30 Javascript
如何使用proxy实现一个简单完整的MVVM库的示例代码
2019/09/17 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
python实现在windows服务中新建进程的方法
2015/06/30 Python
python 限制函数调用次数的实例讲解
2018/04/21 Python
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
python list的index()和find()的实现
2020/11/16 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
什么是View State?
2013/01/27 面试题
汉语言文学专业自荐信
2014/06/11 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
大学生实习推荐信
2015/03/27 职场文书
车间统计员岗位职责
2015/04/14 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
关于Nginx中虚拟主机的一些冷门知识小结
2022/03/03 Servers