基于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 相关文章推荐
Matplotlib中文乱码的3种解决方案
Nov 15 Python
python使用matplotlib画柱状图、散点图
Mar 18 Python
阿里云ECS服务器部署django的方法
Aug 29 Python
python爬虫学习笔记之pyquery模块基本用法详解
Apr 09 Python
python中shell执行知识点
May 06 Python
Python如何使用队列方式实现多线程爬虫
May 12 Python
Python实现爬取并分析电商评论
Jun 19 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
Oct 20 Python
关于django python manage.py startapp 应用名出错异常原因解析
Dec 15 Python
虚拟环境及venv和virtualenv的区别说明
Feb 05 Python
Python实战之实现简易的学生选课系统
May 25 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
理解PHP5中static和const关键字的区别
2007/03/19 PHP
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
点图片上一页下一页翻页效果
2008/07/09 Javascript
Iframe 自适应高度并实时监控高度变化的js代码
2009/10/30 Javascript
javaScript同意等待代码实现心得
2011/01/01 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
javascript中this用法实例详解
2017/04/06 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
webpack的CSS加载器的使用
2018/09/11 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
python爬虫 2019中国好声音评论爬取过程解析
2019/08/26 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
python调用摄像头的示例代码
2020/09/28 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
白宫黑市官网:White House Black Market
2016/11/17 全球购物
幼儿园端午节活动方案
2014/08/25 职场文书
2015年高校辅导员工作总结
2015/04/20 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
python面向对象版学生信息管理系统
2021/06/24 Python
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS
python运行脚本文件的三种方法实例
2022/06/25 Python