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 10 Python
Python 忽略warning的输出方法
Oct 18 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 Python
python实现年会抽奖程序
Jan 22 Python
pandas去除重复列的实现方法
Jan 29 Python
在SQLite-Python中实现返回、查询中文字段的方法
Jul 17 Python
python django 原生sql 获取数据的例子
Aug 14 Python
详解pandas中iloc, loc和ix的区别和联系
Mar 09 Python
jupyter notebook运行命令显示[*](解决办法)
May 18 Python
PyQt5实现画布小程序
May 30 Python
Pytorch1.5.1版本安装的方法步骤
Dec 31 Python
Django框架模板用法详解
Jun 10 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下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
php fsockopen解决办法 php实现多线程
2014/01/20 PHP
php中fgetcsv()函数用法实例
2014/11/28 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
2016/05/31 PHP
PHP递归的三种常用方式
2019/02/28 PHP
关于JQuery($.load)事件的用法和分析
2013/04/09 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
javascript正则表达式使用replace()替换手机号的方法
2015/01/19 Javascript
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
jquery实现图片放大镜功能
2015/11/23 Javascript
浅谈json取值(对象和数组)
2016/06/24 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
使用Fullpage插件快速开发整屏翻页的页面
2017/09/13 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
2019/09/20 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
SCDKey德国:全球领先的数字游戏市场
2019/04/09 全球购物
庆七一活动方案
2014/01/25 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
村党支部对照检查材料思想汇报
2014/09/28 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
幼儿园六一儿童节活动总结
2015/02/10 职场文书
创业计划书之婴幼儿游泳馆
2019/09/11 职场文书
详解Python如何批量采集京东商品数据流程
2022/01/22 Python