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实现的登陆Discuz!论坛通用代码分享
Jul 11 Python
Python中return语句用法实例分析
Aug 04 Python
Python中对元组和列表按条件进行排序的方法示例
Nov 10 Python
使用Python神器对付12306变态验证码
Jan 05 Python
Python发送form-data请求及拼接form-data内容的方法
Mar 05 Python
python flask实现分页的示例代码
Aug 02 Python
python创建文件时去掉非法字符的方法
Oct 31 Python
Python开发网站目录扫描器的实现
Feb 21 Python
Python数据类型之列表和元组的方法实例详解
Jul 08 Python
python使用sessions模拟登录淘宝的方式
Aug 16 Python
如何解决安装python3.6.1失败
Jul 01 Python
python实现简单猜单词游戏
Dec 24 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不用内置函数对数组排序的两个算法代码
2010/02/08 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
Javascript 读书笔记索引贴
2010/01/11 Javascript
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
css值转换成数值请抛弃parseInt
2011/10/24 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
2012/11/11 Javascript
随鼠标上下滚动的jquery代码
2013/12/05 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
javascript 将共享属性迁移到原型中去的实现方法
2016/08/31 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
JavaScript实现简单生成随机颜色的方法
2017/09/21 Javascript
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
Python中的字典遍历备忘
2015/01/17 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
2018/12/19 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
numpy数组广播的机制
2019/07/12 Python
为什么相对PHP黑python的更少
2020/06/21 Python
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
百丽国际旗下购物网站:优购
2017/02/28 全球购物
美国手机支架公司:PopSockets
2019/11/27 全球购物
高级Java程序员面试要点
2013/08/02 面试题
医德考评自我评价
2014/09/14 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS