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中with及contextlib的用法详解
Jun 08 Python
python函数式编程学习之yield表达式形式详解
Mar 25 Python
python复制文件到指定目录的实例
Apr 27 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 Python
python socket通信编程实现文件上传代码实例
Dec 14 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
Feb 20 Python
Python内建序列通用操作6种实现方法
Mar 26 Python
Python 实现国产SM3加密算法的示例代码
Sep 21 Python
python代码实现猜拳小游戏
Nov 30 Python
python 监控服务器是否有人远程登录(详细思路+代码)
Dec 18 Python
django注册用邮箱发送验证码的实现
Apr 18 Python
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
May 28 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网页显示各种语法错误
2013/09/23 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
Thinkphp5+uploadify实现的文件上传功能示例
2018/05/26 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
2015/04/21 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
2016/04/29 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
Python基本数据类型详细介绍
2014/03/11 Python
python实现simhash算法实例
2014/04/25 Python
Django内容增加富文本功能的实例
2017/10/17 Python
Python实现购物车功能的方法分析
2017/11/10 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
python用for循环求和的方法总结
2019/07/08 Python
对python中return与yield的区别详解
2020/03/12 Python
Pymysql实现往表中插入数据过程解析
2020/06/02 Python
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
linux面试题参考答案(7)
2014/07/24 面试题
会计学生自我鉴定
2014/02/06 职场文书
怎样填写就业意向
2014/04/02 职场文书
中学生寄语大全
2014/04/03 职场文书
2015中秋祝酒词
2015/08/12 职场文书
调解协议书范本
2016/03/21 职场文书
python实现MD5进行文件去重的示例代码
2021/07/09 Python
python分分钟绘制精美地图海报
2022/02/15 Python
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js
一篇文章带你掌握SQLite3基本用法
2022/06/14 数据库