基于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实现基于KNN算法的笔迹识别功能详解
Jul 09 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
将Python文件打包成.EXE可执行文件的方法
Aug 11 Python
python将三维数组展开成二维数组的实现
Nov 30 Python
python实现随机加减法生成器
Feb 24 Python
sklearn+python:线性回归案例
Feb 24 Python
Python实现GIF图倒放
Jul 16 Python
Python selenium如何打包静态网页并下载
Aug 12 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 Python
浅析Python的命名空间与作用域
Nov 25 Python
Python包管理工具pip的15 个使用小技巧
May 17 Python
Python实现简单的猜单词
Jun 15 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
php selectradio和checkbox默认选择的实现方法详解
2013/06/29 PHP
PHP中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
javascript 变量作用域 代码分析
2009/06/26 Javascript
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
2010/01/12 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
javascript变量声明实例分析
2015/04/25 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
微信小程序  Mustache语法详细介绍
2016/10/27 Javascript
如何重置vue打印变量的显示方式
2017/12/06 Javascript
Echarts地图添加引导线效果(labelLine)
2019/09/30 Javascript
编程语言Python的发展史
2014/09/26 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
利用python实现AR教程
2019/11/20 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
python自动点赞功能的实现思路
2020/02/26 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
使用python创建生成动态链接库dll的方法
2020/05/09 Python
python主要用于哪些方向
2020/07/05 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
求职信写作要突出重点
2014/01/01 职场文书
工作过失检讨书
2014/02/23 职场文书
宣传工作经验材料
2014/06/02 职场文书
2014年小学德育工作总结
2014/12/05 职场文书
千手观音观后感
2015/06/03 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
CSS3 制作精美的定价表
2021/04/06 HTML / CSS
mysql5.6主从搭建以及不同步问题详解
2021/12/04 MySQL
A22国内电台短波广播频率表
2022/05/10 无线电