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解析发往本机的数据包示例 (解析数据包)
Jan 16 Python
用Python实现随机森林算法的示例
Aug 24 Python
pandas中Timestamp类用法详解
Dec 11 Python
Python标准库使用OrderedDict类的实例讲解
Feb 14 Python
python批量创建指定名称的文件夹
Mar 21 Python
Python3匿名函数lambda介绍与使用示例
May 18 Python
python实现文件的备份流程详解
Jun 18 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
Django框架 querySet功能解析
Sep 04 Python
python实现PCA降维的示例详解
Feb 24 Python
深入浅析Python 命令行模块 Click
Mar 11 Python
Python系统公网私网流量监控实现流程
Nov 23 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入门学习知识点六 PHP文件的读写操作代码
2011/07/14 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
js表数据排序 sort table data
2009/02/18 Javascript
jquery 单击li防止重复加载的实现代码
2010/12/24 Javascript
模拟select的代码
2011/10/19 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
jQuery使用之标记元素属性用法实例
2015/01/19 Javascript
jQuery设置指定网页元素宽度和高度的方法
2015/03/25 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
微信小程序 wx.request(OBJECT)发起请求详解
2016/10/13 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
node学习记录之搭建web服务器教程
2017/02/16 Javascript
老生常谈ES6中的类
2017/07/31 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
[01:16:12]完美世界DOTA2联赛PWL S2 FTD vs Inki 第一场 11.21
2020/11/23 DOTA
python的类变量和成员变量用法实例教程
2014/08/25 Python
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
Android分包MultiDex策略详解
2017/10/30 Python
python numpy格式化打印的实例
2018/05/14 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
关于Python解包知识点总结
2020/05/05 Python
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
Jdbc数据访问技术面试题
2012/03/30 面试题
应届大专毕业生个人自荐信
2013/09/22 职场文书
《秋姑娘的信》教学反思
2014/02/28 职场文书
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书
2014年医院十一国庆节活动方案
2014/09/15 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
信仰纪录片观后感
2015/06/08 职场文书
2015年初中教务处工作总结
2015/07/21 职场文书