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开发环境PyScripter中文乱码问题解决方案
Sep 11 Python
Python搭建FTP服务器的方法示例
Jan 19 Python
python模块之subprocess模块级方法的使用
Mar 26 Python
Pycharm如何打断点的方法步骤
Jun 13 Python
python 基于TCP协议的套接字编程详解
Jun 29 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
Oct 30 Python
python计算波峰波谷值的方法(极值点)
Feb 18 Python
python实现处理mysql结果输出方式
Apr 09 Python
Python优秀开源项目Rich源码解析的流程分析
Jul 06 Python
详解Python利用configparser对配置文件进行读写操作
Nov 03 Python
Python wordcloud库安装方法总结
Dec 31 Python
教你如何使用Python开发一个钉钉群应答机器人
Jun 21 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
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
2014/05/08 PHP
php+xml实现在线英文词典之添加词条的方法
2015/01/23 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
Js中sort()方法的用法
2006/11/04 Javascript
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
JS中getYear()和getFullYear()区别分析
2014/07/04 Javascript
jQuery源码解读之hasClass()方法分析
2015/02/20 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
2016/08/28 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
详解js加减乘除精确计算
2019/03/19 Javascript
JQuery的加载和选择器用法简单示例
2019/05/13 jQuery
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
Python import自定义模块方法
2015/02/12 Python
bpython 功能强大的Python shell
2016/02/16 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
Django shell调试models输出的SQL语句方法
2019/08/29 Python
python 实现Requests发送带cookies的请求
2021/02/08 Python
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
英国排名第一的LED灯泡网站:LED Bulbs
2019/09/03 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
幼儿园园长个人总结
2015/03/02 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
详解Java实践之抽象工厂模式
2021/06/18 Java/Android
MySql数据库触发器使用教程
2022/06/01 MySQL