python中的列表推导浅析


Posted in Python onApril 26, 2014

列表推导(List comprehension)的作用是为了更方便地生成列表(list)。

比如,一个list变量的元素均为数字,如果需要将每个元素的值乘以2并生成另外一个list,下面是一种做法:

#-*-encoding:utf-8-*-
list1 = [1,2,4,5,12]
list2 = []
for item in list1:
    list2.append(item*2)
print list2

如果使用列表推导,可以这样:
#-*-encoding:utf-8-*-
list1 = [1,2,4,5,12]
list2 = [item*2 for item in list1 ]
print list2

可以通过if过滤掉不想要的元素,例如提取出list1中小于10的元素:
#-*-encoding:utf-8-*-
list1 = [1,2,4,5,12]
list2 = [item for item in list1 if item < 10 ]
print list2

如果要将两个list中的元素进行组合,可以:
#-*-encoding:utf-8-*-
list1 = [1,2,3]
list2 = [4,5,6]
list3 = [(item1,item2) for item1 in list1 for item2 in list2 ]
print list3

官方文档中给出了一个比较复杂的转置矩阵的例子:
#-*-encoding:utf-8-*-
matrix1 = [
          [1, 2, 3, 4],
          [5, 6, 7, 8],
          [9, 10, 11, 12]
          ]
matrix2 = [[row[i] for row in matrix1] for i in range(4)]
for row in matrix2:
    print row

运行结果如下:
[1, 5, 9]
[2, 6, 10]
[3, 7, 11]
[4, 8, 12]
Python 相关文章推荐
介绍Python中的文档测试模块
Apr 28 Python
解决Python中字符串和数字拼接报错的方法
Oct 23 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
Jul 24 Python
Python爬虫之xlml解析库(全面了解)
Aug 08 Python
解决pycharm界面不能显示中文的问题
May 23 Python
Django实现表单验证
Sep 08 Python
Python Numpy 实现交换两行和两列的方法
Jun 26 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
Apr 08 Python
Python进行特征提取的示例代码
Oct 15 Python
python中复数的共轭复数知识点总结
Dec 06 Python
基于Python实现的购物商城管理系统
Apr 27 Python
Python3.8官网文档之类的基础语法阅读
Sep 04 Python
Python中的Numpy入门教程
Apr 26 #Python
Python中的map、reduce和filter浅析
Apr 26 #Python
Python实现的Kmeans++算法实例
Apr 26 #Python
爬山算法简介和Python实现实例
Apr 26 #Python
Python操作sqlite3快速、安全插入数据(防注入)的实例
Apr 26 #Python
python实现的二叉树算法和kmp算法实例
Apr 25 #Python
python中的__init__ 、__new__、__call__小结
Apr 25 #Python
You might like
php中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
JQuery toggle使用分析
2009/11/16 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
jquery自定义插件开发之window的实现过程
2016/05/06 Javascript
JS中call和apply函数用法实例分析
2018/06/20 Javascript
策略模式实现 Vue 动态表单验证的方法
2019/09/16 Javascript
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
Python检测QQ在线状态的方法
2015/05/09 Python
Python批量按比例缩小图片脚本分享
2015/05/21 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
快速了解Python中的装饰器
2018/01/11 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
Python创建一个元素都为0的列表实例
2019/11/28 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
2020/12/11 Python
Ajax的工作原理
2015/12/04 面试题
中学实习教师自我鉴定
2013/12/12 职场文书
劳资专员岗位职责
2013/12/27 职场文书
幸福家庭事迹材料
2014/02/03 职场文书
革命先烈的英雄事迹材料
2014/02/15 职场文书
企业文化标语口号
2014/06/09 职场文书
庆元旦演讲稿
2014/09/15 职场文书
2014年图书室工作总结
2014/12/09 职场文书
学雷锋献爱心倡议书
2015/04/27 职场文书
行政处罚告知书
2015/07/01 职场文书
2016年大学生就业指导课心得体会
2015/10/09 职场文书
你为什么是穷人?可能是这5个缺点造成
2019/07/11 职场文书