基于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 相关文章推荐
pymssql数据库操作MSSQL2005实例分析
May 25 Python
Python3控制路由器——使用requests重启极路由.py
May 11 Python
详解python3百度指数抓取实例
Dec 12 Python
Python交互环境下实现输入代码
Jun 22 Python
python高阶爬虫实战分析
Jul 29 Python
Python使用sorted对字典的key或value排序
Nov 15 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
Jul 03 Python
python3中pip3安装出错,找不到SSL的解决方式
Dec 12 Python
python图形界面开发之wxPython树控件使用方法详解
Feb 24 Python
python 实现图片修复(可用于去水印)
Nov 19 Python
Django中session进行权限管理的使用
Jul 09 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
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
2014/05/15 PHP
PHP实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
php新浪微博登录接口用法实例
2014/12/23 PHP
Yii遍历行下每列数据的方法
2016/10/17 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
javascript 获取iframe里页面中元素值的方法
2014/02/17 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
2016/06/21 Javascript
如何用RxJS实现Redux Form
2018/12/29 Javascript
微信小程序实现简单表格
2019/02/14 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
python 字典操作提取key,value的方法
2019/06/26 Python
python的json包位置及用法总结
2020/06/21 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
html5 乒乓球(碰撞检测)实例二
2013/07/25 HTML / CSS
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
毕业求职自荐信格式是什么
2013/11/19 职场文书
商业房地产广告语
2014/03/13 职场文书
大国崛起观后感
2015/06/02 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
会议营销主持词
2015/07/03 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书
个人工作失误的保证书怎么写?
2019/06/21 职场文书