码迷,mamicode.com
首页 > 编程语言 > 详细

我的Python之路:迭代和解析

时间:2017-05-21 12:57:44      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:lambda函数   序列   函数调用   语法   style   循环   append   简单   print   

一、基本概念

由于与函数工具(map和filter)有关,又与循环有关,在这我们在次进行学习。

二、列表解析与map

Python中的内置函数ord返回一个单字符的ASCII编码如:

1 t=ord("s")
2 print(t)

结果为:

115

现在,假设我们希望搜集整个字符串的ASCII编码,也许最直接的方法就是使用for循环。

1 res=[]
2 for x in "fdsga":
3   res.append(ord(x))
4 print(res)

结果为:

[102, 100, 115, 103, 97]

然而我们现在知道了map函数,我们能够使用一个单个函数调用,而不用关心代码中的列表结构,使实现更为简单

1 res1=list(map(ord,sadfadsf))
2 print(res1)
3 res2=[ord(x)for   x in  "safdsg"]
4 print(res2)

结果为:

[115, 97, 100, 102, 97, 100, 115, 102]
[115, 97, 102, 100, 115, 103]

所以在这我们可以看出列表解析是在一个序列值上应用一个任意表达式,将其结果收集到一个新的列表中返回。

从语法上来说,列表解析是由方括号封装起来的。

三、增加测试和嵌套循环

就像我们刚刚看到都得map函数可以替代列表解析,为了测试表达式,这里的filter版本创建了一个小的lambda函数,为了对比也显示了for循环。

 

我的Python之路:迭代和解析

标签:lambda函数   序列   函数调用   语法   style   循环   append   简单   print   

原文地址:http://www.cnblogs.com/alsely/p/6884351.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!