基于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实现360的字符显示界面
Feb 21 Python
Python实现模拟时钟代码推荐
Nov 08 Python
详解Python编程中基本的数学计算使用
Feb 04 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
Jan 15 Python
Python叠加两幅栅格图像的实现方法
Jul 05 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 Python
python 按钮点击关闭窗口的实现
Mar 04 Python
解决django框架model中外键不落实到数据库问题
May 20 Python
使用Keras中的ImageDataGenerator进行批次读图方式
Jun 17 Python
keras自动编码器实现系列之卷积自动编码器操作
Jul 03 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
Feb 22 Python
用Python可视化新冠疫情数据
Jan 18 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线性表的入栈与出栈实例分析
2015/06/12 PHP
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
JavaScript对象学习经验整理
2013/10/12 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
2017/01/23 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
[01:52]2014DOTA2西雅图邀请赛 V社开大会你不知道的小秘密
2014/07/08 DOTA
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
Python 基础教程之str和repr的详解
2017/08/20 Python
python numpy函数中的linspace创建等差数列详解
2017/10/13 Python
scrapy爬虫完整实例
2018/01/25 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
python pycurl验证basic和digest认证的方法
2018/05/02 Python
Python新手如何理解循环加载模块
2020/05/29 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
CSS3制作日历实现代码
2012/01/21 HTML / CSS
HTML5新增属性data-*和js/jquery之间的交互及注意事项
2017/08/08 HTML / CSS
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
初一体育教学反思
2014/01/29 职场文书
公司会议策划方案
2014/05/17 职场文书
小学安全教育月活动总结
2014/07/07 职场文书
机械操作工岗位职责
2014/08/08 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
杜甫草堂导游词
2015/02/03 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
十个Python自动化常用操作,即拿即用
2021/05/10 Python
python之json文件转xml文件案例讲解
2021/08/07 Python