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 Web框架Flask下网站开发入门实例
Feb 08 Python
Python中使用第三方库xlrd来写入Excel文件示例
Apr 05 Python
Python文本特征抽取与向量化算法学习
Dec 22 Python
Python画柱状统计图操作示例【基于matplotlib库】
Jul 04 Python
pandas DataFrame 删除重复的行的实现方法
Jan 29 Python
树莓派采用socket方式文件传输(python)
Jun 22 Python
python实现批量处理将图片粘贴到另一张图片上并保存
Dec 12 Python
dpn网络的pytorch实现方式
Jan 14 Python
Python字符串hashlib加密模块使用案例
Mar 10 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
May 10 Python
pytorch随机采样操作SubsetRandomSampler()
Jul 07 Python
Python3爬虫里关于代理的设置总结
Jul 30 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中json_encode、json_decode与serialize、unserialize的性能测试分析
2010/06/09 PHP
基于PHP服务端图片生成缩略图的方法详解
2013/06/20 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
mongodb和php的用法详解
2019/03/25 PHP
jquery 年会抽奖程序
2011/12/22 Javascript
javascript打印输出json实例
2013/11/11 Javascript
FireBug 调试JS入门教程 如何调试JS
2013/12/23 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
js实现复制功能(多种方法集合)
2018/01/06 Javascript
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
2019/04/30 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
简单的编程0基础下Python入门指引
2015/04/01 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
俄罗斯皮肤健康中心:Pharmacosmetica.ru
2020/02/22 全球购物
汽车制造与装配专业自荐信范文
2014/01/02 职场文书
医院辞职信范文
2014/01/17 职场文书
产假请假条
2014/04/10 职场文书
质量保证书范本
2014/04/29 职场文书
社区植树节活动总结
2015/02/06 职场文书
谢师宴家长致辞
2015/07/27 职场文书
汶川大地震感悟
2015/08/10 职场文书
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android