基于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正则表达式re之compile函数解析
Oct 25 Python
python中的字典操作及字典函数
Jan 03 Python
Django中url的反向查询的方法
Mar 14 Python
django传值给模板, 再用JS接收并进行操作的实例
May 28 Python
pyqt5的QWebEngineView 使用模板的方法
Aug 18 Python
基于Python3.6+splinter实现自动抢火车票
Sep 25 Python
Python3实现的判断回文链表算法示例
Mar 08 Python
Python画图实现同一结点多个柱状图的示例
Jul 07 Python
python使用numpy实现直方图反向投影示例
Jan 17 Python
Python BeautifulReport可视化报告代码实例
Apr 13 Python
django 解决自定义序列化返回处理数据为null的问题
May 20 Python
用Python实现屏幕截图详解
Jan 22 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
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
利用php来自动调用不同服务器上的flash
2006/10/09 PHP
PHP中的日期处理方法集锦
2007/01/02 PHP
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
php线性表的入栈与出栈实例分析
2015/06/12 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
jQuery MD5加密实现代码
2010/03/15 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
JavaScript分析、压缩工具JavaScript Analyser
2014/12/31 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
JS回调函数简单用法示例
2017/02/09 Javascript
深入理解vue-loader如何使用
2017/06/06 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
深入浅析angular和vue还有jquery的区别
2018/08/13 jQuery
JavaScript 如何计算文本的行数的实现
2020/09/14 Javascript
[01:32:10]NAVI vs VG Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
[38:31]完美世界DOTA2联赛PWL S3 Magma vs GXR 第一场 12.13
2020/12/17 DOTA
gearman的安装启动及python API使用实例
2014/07/08 Python
Python使用matplotlib实现绘制自定义图形功能示例
2018/01/18 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
携程英文网站:Trip.com
2017/02/07 全球购物
澳大利亚时尚前卫设计师珠宝在线:Amber Sceats
2017/10/04 全球购物
澳大利亚在线划船、露营和钓鱼商店:BCF Australia
2020/03/22 全球购物
医校毕业生自我鉴定
2014/01/25 职场文书
幼儿园开学寄语
2014/04/03 职场文书
党员自我评价2015
2015/03/03 职场文书
建筑工程催款函
2015/06/24 职场文书
公司员工奖惩制度
2015/08/04 职场文书
iPhone13再次曝光
2021/04/15 数码科技
使用python求解迷宫问题的三种实现方法
2022/03/17 Python