首页 > 代码库 > 我的Python之路:迭代和解析

我的Python之路:迭代和解析

一、基本概念

由于与函数工具(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之路:迭代和解析