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中正则表达式的使用详解
Oct 17 Python
python删除列表内容
Aug 04 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
Jun 07 Python
Python生成密码库功能示例
May 23 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
Aug 15 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
python如何去除字符串中不想要的字符
Jul 05 Python
python中强大的format函数实例详解
Dec 05 Python
Python3实现配置文件差异对比脚本
Nov 18 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
Python实现SMTP邮件发送
Jun 16 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
Jan 05 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使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
Yii框架常见缓存应用实例小结
2019/09/09 PHP
Aster vs KG BO3 第二场2.18
2021/03/10 DOTA
jQuery MD5加密实现代码
2010/03/15 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
jQuery图片左右滚动代码 有左右按钮实例
2016/06/20 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
JS实现自动阅读单词(有道单词本添加功能)
2016/11/14 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
微信小程序动态添加分享数据
2017/06/14 Javascript
vue.js语法及常用指令
2017/10/29 Javascript
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
VUE预渲染及遇到的坑
2018/09/03 Javascript
js实现动态添加上传文件页面
2018/10/22 Javascript
vue-router重定向和路由别名的使用讲解
2019/01/19 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
2019/04/12 Javascript
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
python获取指定目录下所有文件名列表的方法
2015/05/20 Python
python中字符串的操作方法大全
2018/06/03 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
Python pandas对excel的操作实现示例
2020/07/21 Python
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
压铸汽车模型收藏家:Diecastmodelswholesale.com
2016/12/21 全球购物
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
节约用水演讲稿
2014/05/21 职场文书
群众路线剖析材料(四风问题)
2014/10/08 职场文书
利用Python判断你的密码难度等级
2021/06/02 Python
「魔法少女伊莉雅」美游粘土人开订
2022/03/21 日漫
利用Python多线程实现图片下载器
2022/03/25 Python