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中struct模块对字节流/二进制流的操作教程
Jan 21 Python
Python中functools模块函数解析
Mar 12 Python
Python实现对象转换为xml的方法示例
Jun 08 Python
git进行版本控制心得详谈
Dec 10 Python
Python 打印中文字符的三种方法
Aug 14 Python
python实现简单多人聊天室
Dec 11 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
Dec 26 Python
python变量赋值方法(可变与不可变)
Jan 12 Python
使用k8s部署Django项目的方法步骤
Jan 14 Python
python 中如何获取列表的索引
Jul 02 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
Jul 01 Python
Python类绑定方法及非绑定方法实例解析
Oct 09 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处理换行符的问题 \r\n
2013/06/13 PHP
php版微信公众号自定义分享内容实现方法
2016/09/22 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
IE8 浏览器Cookie的处理
2009/01/31 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
2015/08/05 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
浅析JavaScript中的对象类型Object
2016/05/26 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
vue环境搭建简单教程
2017/11/07 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
python中通过预先编译正则表达式提高效率
2017/09/25 Python
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
Django组件content-type使用方法详解
2019/07/19 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
2020/02/05 Python
基于python图像处理API的使用示例
2020/04/03 Python
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
物流管理毕业生自荐信
2013/10/24 职场文书
工程业务员工作职责
2013/12/07 职场文书
体育教师自荐信范文
2013/12/16 职场文书
家长评语大全
2014/01/22 职场文书
三年级小学生评语
2014/04/22 职场文书
梅花魂教学反思
2014/04/25 职场文书
学校标语大全
2014/06/19 职场文书
中层干部考核评语
2015/01/04 职场文书
前台接待员岗位职责
2015/04/15 职场文书
人事聘任通知
2015/04/21 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书
go语言-在mac下brew升级golang
2021/04/25 Golang
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技
win10搭建配置ftp服务器的方法
2022/08/05 Servers