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构造函数及解构函数介绍
Feb 26 Python
Python+Selenium自动化实现分页(pagination)处理
Mar 31 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
python 读写文件,按行修改文件的方法
Jul 12 Python
Python3.6中Twisted模块安装的问题与解决
Apr 15 Python
python判断一个对象是否可迭代的例子
Jul 22 Python
Tensorflow 实现分批量读取数据
Jan 04 Python
python 安装impala包步骤
Mar 28 Python
Python并发concurrent.futures和asyncio实例
May 04 Python
如何在mac版pycharm选择python版本
Jul 21 Python
用Python进行栅格数据的分区统计和批量提取
May 27 Python
Github 使用python对copilot做些简单使用测试
Apr 14 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
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
PHP面向对象学习笔记之一 基础概念
2012/10/06 PHP
Codeigniter实现多文件上传并创建多个缩略图
2014/06/12 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
Javascript中Array用法实例分析
2015/06/13 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
JS+CSS实现六级网站导航主菜单效果
2015/09/28 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
2016/08/01 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
vue实现搜索功能
2019/05/28 Javascript
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
2020/04/14 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
js+css3实现简单时钟特效
2020/09/13 Javascript
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
简单介绍Python的Tornado框架中的协程异步实现原理
2015/04/23 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
2019/06/04 Python
pandas的排序和排名的具体使用
2019/07/31 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
Django+Django-Celery+Celery的整合实战
2021/01/20 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
销售心得体会
2014/01/02 职场文书
倡议书格式
2014/04/14 职场文书
音乐幼师求职信
2014/07/09 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
物业保安辞职信
2015/05/12 职场文书