Python列表解析操作实例总结

 更新时间:2020年02月26日 10:58:01   作者:luckycyong  
这篇文章主要介绍了Python列表解析操作,结合实例形式总结分析了Python列表解析常见的列表推导式、循环语句、条件列表、嵌套列表等相关操作技巧,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • keras 自定义loss损失函数,sample在loss上的加权和metric详解

    keras 自定义loss损失函数,sample在loss上的加权和metric详解

    这篇文章主要介绍了keras 自定义loss损失函数,sample在loss上的加权和metric详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 用Python中的wxPython实现最基本的浏览器功能

    用Python中的wxPython实现最基本的浏览器功能

    这篇文章主要介绍了用Python中的wxPython实现基本的浏览器功能,本文来自于IBM官方网站开发者文档,需要的朋友可以参考下
    2015-04-04
  • python实现内存监控系统

    python实现内存监控系统

    这篇文章主要为大家详细介绍了python实现内存监控系统,通过系统命令或操作系统文件获取到内存信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Python3.7安装keras和TensorFlow的教程图解

    Python3.7安装keras和TensorFlow的教程图解

    这篇文章主要介绍了Python3.7安装keras和TensorFlow经验,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • flask框架实现连接sqlite3数据库的方法分析

    flask框架实现连接sqlite3数据库的方法分析

    这篇文章主要介绍了flask框架实现连接sqlite3数据库的方法,结合实例形式分析了flask框架连接sqlite3数据库的具体操作步骤与相关实现技巧,需要的朋友可以参考下
    2018-07-07
  • python多任务之协程的使用详解

    python多任务之协程的使用详解

    这篇文章主要介绍了python多任务之协程的使用,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • 利用Python栅格化地图(以成都市为例,含代码)

    利用Python栅格化地图(以成都市为例,含代码)

    这篇文章主要给大家介绍了关于利用Python栅格化地图的相关资料,
    Python中可以使用多种库来进行栅格化地图的操作,其中比较常用的有geopandas、rasterio等,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • Ubuntu+python将nii图像保存成png格式

    Ubuntu+python将nii图像保存成png格式

    这篇文章主要介绍了Ubuntu+python将nii图像保存成png格式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python3调用百度AI识别图片中的文字功能示例【测试可用】

    Python3调用百度AI识别图片中的文字功能示例【测试可用】

    这篇文章主要介绍了Python3调用百度AI识别图片中的文字功能,结合实例形式分析了Python3安装及使用百度AI接口的相关操作技巧,并附带说明了百度官方AI平台的注册及接口调用操作方法,需要的朋友可以参考下
    2019-03-03
  • 使用python检查yaml配置文件是否符合要求

    使用python检查yaml配置文件是否符合要求

    这篇文章主要介绍了使用python检查yaml配置文件是否符合要求,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04

最新评论