基于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中while循环语句用法简单实例
May 07 Python
Python微信库:itchat的用法详解
Aug 14 Python
numpy.transpose对三维数组的转置方法
Apr 17 Python
python导入模块交叉引用的方法
Jan 19 Python
Python Django基础二之URL路由系统
Jul 18 Python
windows上安装python3教程以及环境变量配置详解
Jul 18 Python
python按行读取文件并找出其中指定字符串
Aug 08 Python
python3 selenium自动化测试 强大的CSS定位方法
Aug 23 Python
Python基于百度AI实现OCR文字识别
Apr 02 Python
django有哪些好处和优点
Sep 01 Python
只用Python就可以制作的简单词云
Jun 07 Python
详解如何用Python实现感知器算法
Jun 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 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
深入掌握include_once与require_once的区别
2013/06/17 PHP
thinkphp的静态缓存用法分析
2014/11/29 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
jQuery UI的Dialog无法提交问题的解决方法
2011/01/11 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
javascript打开word文档的方法
2014/04/16 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
JS+HTML5 FileReader对象用法示例
2017/04/07 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
three.js 入门案例详解
2018/01/23 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
Vue数据双向绑定底层实现原理
2019/11/22 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
[01:02:53]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第二局
2016/03/06 DOTA
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
Python多线程thread及模块使用实例
2020/04/28 Python
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
专科毕业生求职简历的自我评价
2013/10/12 职场文书
初中生自我评价
2014/02/01 职场文书
材料加工工程求职信
2014/02/19 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
社区干部培训心得体会
2016/01/06 职场文书
Django使用echarts进行可视化展示的实践
2021/06/10 Python