基于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 布尔操作实现代码
Mar 23 Python
Python实现向QQ群成员自动发邮件的方法
Nov 19 Python
Python functools模块学习总结
May 09 Python
在Python中处理字符串之isdigit()方法的使用
May 18 Python
浅谈python之新式类
Aug 12 Python
python实现字符串和字典的转换
Sep 29 Python
网易2016研发工程师编程题 奖学金(python)
Jun 19 Python
Python 线程池用法简单示例
Oct 02 Python
使用Python函数进行模块化的实现
Nov 15 Python
django日志默认打印request请求信息的方法示例
May 17 Python
pytorch 实现在测试的时候启用dropout
May 27 Python
给numpy.array增加维度的超简单方法
Jun 02 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+js实现裁剪任意形状图片
2018/10/31 PHP
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
动态标签 悬停效果 延迟加载示例代码
2013/11/21 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
jQuery中;function($,undefined) 前面的分号的用处
2014/12/17 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
Vue中通过属性绑定为元素绑定style行内样式的实例代码
2020/04/30 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
用Python的urllib库提交WEB表单
2009/02/24 Python
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
python海龟绘图实例教程
2014/07/24 Python
python简单文本处理的方法
2015/07/10 Python
Python设置默认编码为utf8的方法
2016/07/01 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
Python设计模式之建造者模式实例详解
2019/01/17 Python
python处理“
2019/06/10 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
Python Opencv任意形状目标检测并绘制框图
2019/07/23 Python
Python流程控制常用工具详解
2020/02/24 Python
python通用读取vcf文件的类(复制粘贴即可用)
2020/02/29 Python
vue常用指令代码实例总结
2020/03/16 Python
浅谈Python __init__.py的作用
2020/10/28 Python
html+css实现自定义图片上传按钮功能
2019/09/04 HTML / CSS
幼儿园保育员辞职信
2014/01/12 职场文书
财务部经理岗位职责
2014/02/03 职场文书
护士毕业生自我鉴定
2014/02/08 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
nginx配置之并发频次限制
2022/04/18 Servers