Python列表解析操作实例总结
本文实例讲述了Python列表解析操作。分享给大家供大家参考,具体如下:
Python的强大特性之一是其对list的解析,它提供一种紧凑的方法,可以通过对list中的每个元素应用一个函数,从而将一个list映射为另一个list。
列表解析,又叫列表推导式(listcomprehension)
列表解析比for更精简,运行更快,特别是对于较大的数据集合
列表解析可以替代绝大多数需要用到map和filter的场合
列表推导式提供了一个创建链表的简单途径,无需使用map(),filter()以及lambda。以定义方式得到列表通常要比使用构造函数创建这些列表更清晰。每一个列表推导式包括在一个for语句之后的表达式,零或多个for或if语句。返回值是由for或if子句之后的表达式得到的元素组成的列表。如果想要得到一个元组,必须要加上括号。
基本
>>>[xforxinrange(5)]#[0,1,2,3,4] l1=[1,2,3,4] [x*2forxinl1]#[2,4,6,8]
多个值的
['%s=%s'for(k,v)ina_map.items()]
两次循环
>>>l1=[1,2,3,4] >>>l2=[1,2,3,4] >>>[x+yforxinl1foryinl2] [2,3,4,5,3,4,5,6,4,5,6,7,5,6,7,8]
可以调用函数
[func(x)forxinl1]#等价于map
注意,列表解析不会改变原有列表的值,会创建新的list
[xforxinrange(100)ifx%2==0]
mat=[[1,2,3],[4,5,6],[7,8,9]]
交换行列
[[row[i]forrowinmat]foriin(0,1,2)]#[[1,4,7],[2,5,8],[3,6,9]]
1.根据索引取元素时,需要进行边界检查IndexError切片取,不需要,超过边界不会异常
2.在迭代中修改列表注意,不安全,不建议这么干但是可以foriinl1[:]: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程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。