基于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 将字符串转换成字典dict
Mar 24 Python
Python中文分词实现方法(安装pymmseg)
Jun 14 Python
Python性能提升之延迟初始化
Dec 04 Python
python使用xlrd和xlwt读写Excel文件的实例代码
Sep 05 Python
python 实现图片上传接口开发 并生成可以访问的图片url
Dec 18 Python
python 遗传算法求函数极值的实现代码
Feb 11 Python
python读取csv文件指定行的2种方法详解
Feb 13 Python
在python里创建一个任务(Task)实例
Apr 25 Python
浅析Python面向对象编程
Jul 10 Python
Python中使用Selenium环境安装的方法步骤
Feb 22 Python
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
Apr 27 Python
Python matplotlib可视化之绘制韦恩图
Feb 24 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
咖啡的种类和口感
2021/03/03 新手入门
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
2017/09/01 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
2019/10/16 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
彪哥1.1(智能表格)提供下载
2006/09/07 Javascript
客户端js性能优化小技巧整理
2013/11/05 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
2015/05/09 Javascript
js获取iframe中的window对象的实现方法
2016/05/20 Javascript
VueJS事件处理器v-on的使用方法
2017/09/27 Javascript
微信小程序登录换取token的教程
2018/05/31 Javascript
javascript实现摄像头拍照预览
2019/09/30 Javascript
[05:43]VG.R战队教练Mikasa专访:为目标从未停止战斗
2016/08/02 DOTA
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
用matplotlib画等高线图详解
2017/12/14 Python
在python环境下运用kafka对数据进行实时传输的方法
2018/12/27 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
python requests指定出口ip的例子
2019/07/25 Python
使用Python爬取弹出窗口信息的实例
2020/03/14 Python
python七种方法判断字符串是否包含子串
2020/08/18 Python
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
如何实现jdbc性能优化
2012/07/30 面试题
2014年五一活动策划方案
2014/03/15 职场文书
精神文明建设标语
2014/06/16 职场文书
2015年科协工作总结
2015/05/19 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android