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 02 Python
Python中的super用法详解
May 28 Python
python和ruby,我选谁?
Sep 13 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
May 22 Python
5分钟 Pipenv 上手指南
Dec 20 Python
Python中一个for循环循环多个变量的示例
Jul 16 Python
python中调试或排错的五种方法示例
Sep 12 Python
基于python3 的百度图片下载器的实现代码
Nov 05 Python
python list数据等间隔抽取并新建list存储的例子
Nov 27 Python
python的reverse函数翻转结果为None的问题
May 11 Python
python实现图像高斯金字塔的示例代码
Dec 11 Python
tensorflow中的梯度求解及梯度裁剪操作
May 26 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通用检测函数集合
2011/02/08 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
基于JQuery的密码强度验证代码
2010/03/01 Javascript
在IE6下发生Internet Explorer cannot open the Internet site错误
2010/06/21 Javascript
js实现禁止中文输入的方法
2015/01/14 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
JS弹出对话框实现方法(三种方式)
2015/12/18 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
ant design实现圈选功能
2019/12/17 Javascript
python实现用于测试网站访问速率的方法
2015/05/26 Python
python中map()函数的使用方法示例
2017/09/29 Python
Python学习之用pygal画世界地图实例
2017/12/07 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
解决python文件双击运行秒退的问题
2019/06/24 Python
Python命令行click参数用法解析
2019/12/19 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
微信浏览器取消缓存的方法
2015/03/28 HTML / CSS
详解android与HTML混合开发总结
2018/06/06 HTML / CSS
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
学生周末长期请假条
2014/02/15 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书
Python+tkinter实现高清图片保存
2022/03/13 Python