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函数中的默认参数
Mar 30 Python
Django中login_required装饰器的深入介绍
Nov 24 Python
python获取当前目录路径和上级路径的实例
Apr 26 Python
python中的json总结
Oct 11 Python
pygame游戏之旅 添加键盘按键的方法
Nov 20 Python
Python 中Django安装和使用教程详解
Jul 03 Python
pandas 层次化索引的实现方法
Jul 06 Python
python找出列表中大于某个阈值的数据段示例
Nov 24 Python
Django如何使用redis作为缓存
May 21 Python
Python函数参数分类原理详解
May 28 Python
Python内存泄漏和内存溢出的解决方案
Sep 26 Python
python自动化测试三部曲之request+django实现接口测试
Oct 07 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
香妃
2021/03/03 冲泡冲煮
关于PHP自动判断字符集并转码的详解
2013/06/26 PHP
Joomla框架实现字符串截取的方法示例
2017/07/18 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
Use Word to Search for Files
2007/06/15 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
2014/07/02 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
js时间戳转为日期格式的方法
2015/12/28 Javascript
深入理解js中this的用法
2016/05/28 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
详解如何用babel转换es6的class语法
2018/04/03 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
使用JavaScript计算前一天和后一天的思路详解
2019/12/20 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
2020/05/09 Javascript
[01:10]3.19DOTA2发布会 三代刀塔人第一代
2014/03/25 DOTA
python处理文本文件实现生成指定格式文件的方法
2014/07/31 Python
Python实现代码统计工具(终极篇)
2016/07/04 Python
python-str,list,set间的转换实例
2018/06/27 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
Python requests获取网页常用方法解析
2020/02/20 Python
selenium WebDriverWait类等待机制的实现
2020/03/18 Python
Django Admin 上传文件到七牛云的示例代码
2020/06/20 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
Python3压缩和解压缩实现代码
2021/03/01 Python
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
酒后驾车标语
2014/06/30 职场文书
个人自我鉴定怎么写?
2019/07/01 职场文书