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中操作列表之list.extend()方法的使用
May 20 Python
Django REST为文件属性输出完整URL的方法
Dec 18 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
Apr 05 Python
详解Python3的TFTP文件传输
Jun 26 Python
python检测IP地址变化并触发事件
Dec 26 Python
对python 生成拼接xml报文的示例详解
Dec 28 Python
java中的控制结构(if,循环)详解
Jun 26 Python
Python 实现交换矩阵的行示例
Jun 26 Python
浅谈Python中(&amp;,|)和(and,or)之间的区别
Aug 07 Python
python获取网络图片方法及整理过程详解
Dec 20 Python
Python实现验证码识别
Jun 15 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
Oct 15 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
必须收藏的23个php实用代码片段
2016/02/02 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
2021/03/09 PHP
js TextArea的选中区域处理
2010/12/28 Javascript
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
代码详解django中数据库设置
2019/01/28 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
python 多线程死锁问题的解决方案
2020/08/25 Python
css3实现背景图片拉伸效果像桌面壁纸一样
2013/08/19 HTML / CSS
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
毕业生教师求职信
2013/10/20 职场文书
工作中个人的自我评价
2013/12/31 职场文书
大学生创业计划书的用途
2014/01/08 职场文书
秋季运动会通讯稿
2014/01/24 职场文书
村安全生产责任书
2014/08/25 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
教师先进个人材料
2014/12/17 职场文书
先进个人事迹材料
2014/12/29 职场文书
暗恋桃花源观后感
2015/06/12 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
SQL Server内存机制浅探
2022/04/06 SQL Server
python playwright之元素定位示例详解
2022/07/23 Python