这一章节我们来讨论一下为什么要在意列表解析与序列映射函数map,也就是为什么要有前面的几个章节?
答案:就是对于迭代序列,每一个序列的对象只进行一种操作,它能够提供精简的代码
我们下面举两个例子:
1.去掉每一行的换行符
>>> [item for item in open('output_file.txt')]
['aaaaa\n', 'bbbbb\n', 'accccc\n', 'ddddd\n', 'afffff']
>>>
上面的例子是不是非常的熟悉呢?其实我们在前面的列表解析初探的时候已经出现过,现在再一次引用,我们现在需要的操作是每一行去掉换行符
下面我们提供几种实现方法:
* 使用列表解析:
>>> [item.rstrip() for item in open('output_file.txt')]
['aaaaa', 'bbbbb', 'accccc', 'ddddd', 'afffff']
>>> [line.rstrip() for line in open('output_file.txt').readlines()]
['aaaaa', 'bbbbb', 'accccc', 'ddddd', 'afffff']
>>>
* 使用map:
>>> list(map(lambda line:line.rstrip() , open('output_file.txt')))
['aaaaa', 'bbbbb', 'accccc', 'ddddd', 'afffff']
>>>
>>> def test(line):
return line.rstrip()
>>> list(map(test,open('output_file.txt')))
['aaaaa', 'bbbbb', 'accccc', 'ddddd', 'afffff']
>>>
* 使用for循环
>>> def test():
res=[]
for line in open('output_file.txt'):
res.append(line.rstrip())
return res
>>> test()
['aaaaa', 'bbbbb', 'accccc', 'ddddd', 'afffff']
>>>
上面三种方法,我们从两个方面评判:
* 可读性:3>1>2
* 性能:1>2>3
这种时候我们就需要从实际当中出发,调研我们的应用里面究竟需要哪种实现。
当然,笔者认为,在当今的应用当中,除了像互联网公司的那种高并发应用才追求性能,对于一般的应用,可读性比性能来的更加重要,毕竟对于一般应用,薄弱环节在于人,而不在于性能。
2.读取sql数据的属性
由于python的标准sql返回对象是这种形式:列表嵌套元组,列表就是表,元组就是行,对象就是列
返回的对象:
>>> obj=[('ray','16','man'),('jack','20','man'),('rose','22','woman')]
>>>
我们下面还是使用三种方法读取里面的名字属性
* 使用列表解析:
>>> obj=[('ray','16','man'),('jack','20','man'),('rose','22','woman')]
>>> [name for (name,age,sex) in obj]
['ray', 'jack', 'rose']
>>>
* 使用map:
>>> obj=[('ray','16','man'),('jack','20','man'),('rose','22','woman')]
>>> list(map(lambda row:row[0],obj))
['ray', 'jack', 'rose']
>>>
* 使用for循环
>>> obj=[('ray','16','man'),('jack','20','man'),('rose','22','woman')]
>>> def test(obj):
res=[]
for line in obj:res.append(line[0])
return res
>>> test(obj)
['ray', 'jack', 'rose']
>>>
总结:这一章节我们举例说明了为什么要在意列表解析与序列映射函数map,还有一些注意的地方。
这一章节就说到这里,谢谢大家
------------------------------------------------------------------
点击跳转零基础学python-目录
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
python 零基础学习篇-Python-第三章 使用序列1-12.mp3
零基础学python 1.7 第二个程序
python 零基础学习篇-Python-第七章:函数的设计和使用1-3.mp3
python 零基础学习篇-Python-第七章:函数的设计和使用4-9.mp3
零基础入门学习Python-价值200的鱼C论坛教程
设计名称 Python函数 授课课时 1.0 学情分析 学生知识经验基础 已经掌握Python程序编码软件基本的操作技能和基础语法。 已学习Python语句的三种逻辑结构:顺序、条件分支、循环,可以进一步提高编程技能,学习函数...
python入门 零基础学Python
python 零基础学习篇-05.JDK安装和基础环境配置--环境变量--域名映射.mp4
零基础入门学python,全套源码分享,总共4.22G,刚入门的同学可以看看
python-basic零基础学Python.pdf
dlib-19.4.99-py3.6-win32
零基础学python配套源代码,1-10章源代码
map() 会根据提供的函数对指定序列做映射。下面通过本文给大家介绍Python map函数及Python map()函数的用法,需要的朋友参考下吧
《零基础学Python》\PPT 1.python简介
零基础学python,适合第一种编程语言
python免费课件-零基础python⼊门(含课件代码)PDF⾼清 版 给⼤家带来的⼀篇关于python相关的电⼦⽂档资源,介绍了关于python⼊门、python基础⽅⾯的内容,本书是由python官⽅出版,格式 为PDF,资源⼤⼩61 MB,⽥...
零基础学Python口袋笔记课件 归纳总结整理手册04 第4章 序列的应用背记手册.pdf 零基础学Python口袋笔记课件 归纳总结整理手册05 第5章 字符串与正则表达式背记手册.pdf 零基础学Python口袋笔记课件 归纳总结整理...
零基础学Python[老齐].pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
小甲鱼的零基础入门学习Python课后作业及答案
课件资料与本人博客python入门帖息息相关,有需要的可以去看本人博客