基于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 相关文章推荐
pyqt4教程之实现windows窗口小示例分享
Mar 07 Python
Python中用于去除空格的三个函数的使用小结
Apr 07 Python
Python的IDEL增加清屏功能实例
Jun 19 Python
Python双向循环链表实现方法分析
Jul 30 Python
Python访问MongoDB,并且转换成Dataframe的方法
Oct 15 Python
解决Pycharm下面出现No R interpreter defined的问题
Oct 29 Python
Python中asyncio模块的深入讲解
Jun 10 Python
Python closure闭包解释及其注意点详解
Aug 28 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
Mar 14 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
Jul 01 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 Python
Python爬虫数据的分类及json数据使用小结
Mar 29 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 echo,print,printf,sprintf函数之间的区别与用法详解
2013/11/27 PHP
php通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
PHP编写daemon process 实例详解
2016/11/13 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
js 蒙版进度条(结合图片)
2010/03/10 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
2016/07/22 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
2019/05/31 jQuery
js new Date()实例测试
2019/10/31 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
2019/11/24 Javascript
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:06:18]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第二场 1月26日
2021/03/11 DOTA
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
基于Python计算圆周率pi代码实例
2020/03/25 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
Waterford加拿大官方网站:世界著名的水晶杯品牌
2016/11/01 全球购物
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
Java如何调用外部Exe程序
2015/07/04 面试题
介绍一下Java中标识符的命名规则
2014/02/03 面试题
自我评价优秀范文分享
2013/11/30 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
导游词欢迎词
2015/02/02 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL
适合后台管理系统开发的12个前端框架(小结)
2021/06/29 Javascript