基于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 相关文章推荐
window下eclipse安装python插件教程
Apr 24 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
Feb 24 Python
使用django-crontab实现定时任务的示例
Feb 26 Python
Python实现判断给定列表是否有重复元素的方法
Apr 11 Python
Python Grid使用和布局详解
Jun 30 Python
Python基于opencv调用摄像头获取个人图片的实现方法
Feb 21 Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
Jan 08 Python
解决pycharm同一目录下无法import其他文件
Feb 12 Python
Python代码中如何读取键盘录入的值
May 27 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
Jun 09 Python
用python写一个带有gui界面的密码生成器
Nov 06 Python
详解Python requests模块
Jun 21 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
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
Dedecms V3.1 生成HTML速度的优化办法
2007/03/18 PHP
php foreach 参数强制类型转换的问题
2010/12/10 PHP
PHP实现微信小程序用户授权的工具类示例
2019/03/05 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
php+js实现点赞功能的示例详解
2020/08/07 PHP
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
jquery uaMatch源代码
2011/02/14 Javascript
阻止子元素继承父元素事件具体思路及实现
2013/05/02 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
js判断当前页面在移动设备还是在PC端中打开
2016/01/06 Javascript
AngularJS基础 ng-mouseleave 指令详解
2016/08/02 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
DropDownList实现可输入可选择(两种版本可选)
2016/12/07 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
详解webpack babel的配置
2018/01/09 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
Python计算一个文件里字数的方法
2015/06/15 Python
Python回调函数用法实例详解
2015/07/02 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
中专自我鉴定范文
2013/10/16 职场文书
2014年党员整改措施范文
2014/09/21 职场文书
边城读书笔记
2015/06/29 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
关于springboot 配置date字段返回时间戳的问题
2021/07/25 Java/Android
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技