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实现根据图标提取分类应用程序实例
Sep 28 Python
深入解析Python中的urllib2模块
Nov 13 Python
python让列表倒序输出的实例
Jun 25 Python
python中csv文件的若干读写方法小结
Jul 04 Python
Python数据可视化教程之Matplotlib实现各种图表实例
Jan 13 Python
20行python代码的入门级小游戏的详解
May 05 Python
PyTorch搭建多项式回归模型(三)
May 22 Python
python 回溯法模板详解
Feb 26 Python
QML实现钟表效果
Jun 02 Python
python ssh 执行shell命令的示例
Sep 29 Python
Python Spyder 调出缩进对齐线的操作
Feb 26 Python
Pandas 数据编码的十种方法
Apr 20 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 禁止页面缓存输出
2009/01/07 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
PHP 数组基本操作方法详解
2016/06/17 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
PHP+Redis开发的书签案例实战详解
2019/07/09 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
jQuery 连续列表实现代码
2009/12/21 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
node.js中的fs.fchmod方法使用说明
2014/12/16 Javascript
jquery无限级联下拉菜单简单实例演示
2015/11/23 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
Angular 项目实现国际化的方法
2018/01/08 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
JavaScript根据json生成html表格的示例代码
2018/10/24 Javascript
关于layui toolbar和template的结合使用方法
2019/09/19 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
部署vue+Springboot前后端分离项目的步骤实现
2020/05/31 Javascript
vue中解决拖拽改变存在iframe的div大小时卡顿问题
2020/07/22 Javascript
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
Python语言描述最大连续子序列和
2017/12/05 Python
使用python为mysql实现restful接口
2018/01/05 Python
python贪婪匹配以及多行匹配的实例讲解
2018/04/19 Python
Python常用库大全及简要说明
2020/01/17 Python
从python读取sql的实例方法
2020/07/21 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
美国市场上最实惠的送餐服务:Dinnerly
2018/03/18 全球购物
《回乡偶书》教学反思
2014/04/12 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
被委托人身份证明
2015/08/07 职场文书
Golang使用Panic与Recover进行错误捕获
2022/03/22 Golang