Python列表解析操作实例总结


Posted in Python onFebruary 26, 2020

本文实例讲述了Python列表解析操作。分享给大家供大家参考,具体如下:

列表解析

Python 的强大特性之一是其对 list 的解析,它提供一种紧凑的方法,可以通过对 list 中的每个元素应用一个函数,从而将一个 list 映射为另一个 list。
列表解析,又叫列表推导式( list comprehension)
列表解析比 for 更精简,运行更快,特别是对于较大的数据集合
列表解析可以替代绝大多数需要用到 map和 filter的场合

列表推导式提供了一个创建链表的简单途径,无需使用 map() , filter() 以及 lambda 。以定义方式得到列表通常要比使用构造函数创建这些列表更清晰。每一个列表推导式包括在一个 for 语句之后的表达式,零或多个 for 或 if 语句。返回值是由 for 或 if 子句之后的表达式得到的元素组成的列表。如果想要得到一个元组,必须要加上括号。

基本列表解析

基本

>>> [x for x in range(5)]  # [0, 1, 2, 3, 4]
l1 = [1,2,3,4]
[ x*2 for x in l1]  #[2,4,6,8]

多个值的

[ '%s = %s' for (k, v) in a_map.items()]

两次循环

>>> l1 = [1,2,3,4]
>>> l2 = [1,2,3,4]
>>> [x+y for x in l1 for y in l2]
[2, 3, 4, 5, 3, 4, 5, 6, 4, 5, 6, 7, 5, 6, 7, 8]

可以调用函数

[ func(x) for x in l1] #等价于map

注意,列表解析不会改变原有列表的值,会创建新的list

条件列表解析
[ x for x in range(100) if x%2 ==0 ]
嵌套列表解析
mat = [ [1, 2, 3],[4, 5, 6], [7, 8, 9]]

交换行列

[ [row[i] for row in mat] for i in (0,1,2)] #[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
其他:

1.根据索引取元素时,需要进行边界检查 IndexError 切片取,不需要,超过边界不会异常

2.在迭代中修改列表 注意,不安全,不建议这么干 但是可以 for i in l1[:]: l1.insert()……

3.多个list合成一个 就是

['a','b',.....],['a','b'.....]['a','b'.....]

变为

['a','b',.....,'a','b'.....'a','b'.....]

处理

>>> sum ([[ 'a', 'b' ],['a' , 'b'],[ 'a' ,'b' ]], [])
['a' , 'b' , 'a', 'b' , 'a' , 'b']
>>> list (itertools .chain([ 'a' ,'b' ],[ 'a', 'b' ],['a' , 'b']))
['a' , 'b' , 'a', 'b' , 'a' , 'b']

4.关于堆栈和队列

通过上面的操作,可以发现,很轻易可以拿列表当做堆栈或者队列使用
当然,他们有自己的模块,可以查相关库

5.序列相关模块

array 一种受限制可变序列类型,要求所有元素必须是相同类型

copy 提供浅拷贝和深拷贝的能力

operator 包含函数调用形式的序列操作符,如 operator.concat(m,n) 相当于m+n

re 正则表达式

types 包含Python 支持的所有类型

collections 高性能容器数据类型

更多关于Python相关内容可查看本站专题:《Python列表(list)操作技巧总结》、《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现保证只能运行一个脚本实例
Jun 24 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
Jul 16 Python
Python实现动态添加属性和方法操作示例
Jul 25 Python
python截取两个单词之间的内容方法
Dec 25 Python
Python第三方库h5py_读取mat文件并显示值的方法
Feb 08 Python
python pygame实现方向键控制小球
May 17 Python
Python倒排索引之查找包含某主题或单词的文件
Nov 13 Python
pyftplib中文乱码问题解决方案
Jan 11 Python
Python实现病毒仿真器的方法示例(附demo)
Feb 19 Python
使用Python内置模块与函数进行不同进制的数的转换
Apr 26 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 Python
Python3基于print打印带颜色字符串
Jul 06 Python
Python图像处理库PIL的ImageFilter模块使用介绍
Feb 26 #Python
python实现低通滤波器代码
Feb 26 #Python
Python解释器及PyCharm工具安装过程
Feb 26 #Python
Python基础之列表常见操作经典实例详解
Feb 26 #Python
Python TKinter如何自动关闭主窗口
Feb 26 #Python
Flask和pyecharts实现动态数据可视化
Feb 26 #Python
Python图像处理库PIL的ImageEnhance模块使用介绍
Feb 26 #Python
You might like
php重定向的三种方法分享
2012/02/22 PHP
Smarty变量调节器失效的解决办法
2014/08/20 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
PHP判断一个字符串是否是回文字符串的方法
2015/03/23 PHP
无阻塞加载脚本分析[全]
2011/01/20 Javascript
如何使用Javascript获取距今n天前的日期
2013/07/08 Javascript
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
javascript模拟实现C# String.format函数功能代码
2013/11/25 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
Python程序设计入门(1)基本语法简介
2014/06/13 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
python调用百度语音识别api
2018/08/30 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
Myholidays美国:在线旅游网站
2019/08/16 全球购物
介绍一下Make? 为什么使用make
2013/12/08 面试题
护士辞职信范文
2014/01/19 职场文书
义和团口号
2014/06/17 职场文书
初中同学会活动方案
2014/08/22 职场文书
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS