【PY从0到1】第八节 几个重要函数
# 8 第八节 几个重要函数 # 这一节我们介绍几个可以简化代码的函数。 # 其功能用最基本的语言是可以实现的。 # 但,目的是让代码看起来更简洁。 # 在讲常用函数之前,我们再添加一个列表解析的知识点。 # 我们想实现名字第一个字母大写,最初级的for循环是这么写的: g = ['fangfang','didi','titi'] e = [] for i in g: e.append(i.title()) print(e) # 输出结果如下: # ['Fangfang', 'Didi', 'Titi'] # 下面用列表解析来写。 a = [i.title() for i in g] print(a) # 结果如下: # ['Fangfang', 'Didi', 'Titi'] # 对比一下,列表解析将5行代码,缩减到了2行。 # 这个方法在后面的学习中会经常的看到。 # 下面开始介绍几个常用的函数。 # 1> lambda函数(又称匿名函数) # 这是一个小型函数,可以理解为简单的暂时性的使用的函数 # 他比def定义的函数要简单的多。 # 下面介绍几个例子后,大家就对lambda有一个直观的认识了。 # 实现加法功能: sum = lambda x,y: x + y print(sum(1,2)) # 输出结果为:3 # lambda后面跟随的是参数,“:”后就是要求参数实现的运算。 # 2> Map函数 # 使用Map函数需要两个东西,一个是函数,一个是列表。 # Map的功能就是将列表的元素依次传入函数,最后返回一个列表。 # 我们可以用list()或者for循环来查看内容。 # 我们下面举一个例子: def names(a): return a.title() l = ['xixi','didi','dada'] s = ['dudu','qiqi','dingding'] print(list(map(names,l))) # 将l列表的每个元素都依次扔进names函数,然后输出。 # 结果为:['Xixi', 'Didi', 'Dada'] # 当然用for也可以遍历元素。 for i in map(names,s): print(i) # 输出结果为: # Dudu # Qiqi # Dingding # 下面我们结合lambda后,看看代码会变成什么样。 print(list(map(lambda x: x.title(),l ))) # 输出结果为:['Xixi', 'Didi', 'Dada'] # 3> Reduce函数 # 这个函数与map很相似,只不过引入了一个累加的概念。 # 所以,他也需要一个函数,和一个列表。 # 他还有另外一个参数——初始值。 # 下面举例讲解。 # reduce函数在functools里,所以我们需要进行导入。 from functools import reduce def add(x,y): a = x + y return a z = [1,2,3,4,5,6] print(reduce(add,z)) # 结果为:21 # 运算的过程是先传入1和2做加法,随后传入3,再与1+2做加法... # 以此类推:1+2+3+4+5+6=21 # 我们再添加一个默认值:20 print(reduce(add,z,20)) # 结果为:41 # 我们可以把默认值理解为第一个数。 # 20+1+2+3+4+5+6=41 # 最后,我们引入lambda看看语句的变化。 print(reduce(lambda x,y: x + y,z,20)) # 用lambda实现add()的功能,结果保持不变:41 # 4> Filter函数(又称过滤函数) # 这个函数就简单很多了,功能就是过滤。 print(list(filter(lambda x: x<5,z))) # 不用过多解释,原理与前面几个函数相同。 # 输出结果为:[1, 2, 3, 4] # 5> Enumerate函数(又称枚举函数) # 这里需要给大家介绍索引的概念。 # 一般看到index就是控制索引的参数。 # 通过True&False对其控制。 # 索引可以理解为书的页码,他告诉你这个东西在哪里。 # 要记住的是索引一般是从0开始的。 # 我们具体的看一下enumerate怎么用。 for i,j in enumerate(l): # l为前面定义的列表。 print(i,j) # 结果为: # 0 xixi # 1 didi # 2 dada # 我们做一个小的优化。将索引从1开始。 for i,j in enumerate(l): # l为前面定义的列表。 print(i + 1,j) # 结果为: # 1 xixi # 2 didi # 3 dada # 这五个函数是我们初级阶段需要掌握的。
# 8 第八节 几个重要函数
# 这一节我们介绍几个可以简化代码的函数。# 其功能用最基本的语言是可以实现的。# 但,目的是让代码看起来更简洁。
# 在讲常用函数之前,我们再添加一个列表解析的知识点。# 我们想实现名字第一个字母大写,最初级的for循环是这么写的:g = ['fangfang','didi','titi']e = []for i in g: e.append(i.title())print(e)# 输出结果如下:# ['Fangfang', 'Didi', 'Titi']
# 下面用列表解析来写。a = [i.title() for i in g]print(a)# 结果如下:# ['Fangfang', 'Didi', 'Titi']# 对比一下,列表解析将5行代码,缩减到了2行。# 这个方法在后面的学习中会经常的看到。
# 下面开始介绍几个常用的函数。
# 1> lambda函数(又称匿名函数)# 这是一个小型函数,可以理解为简单的暂时性的使用的函数# 他比def定义的函数要简单的多。# 下面介绍几个例子后,大家就对lambda有一个直观的认识了。
# 实现加法功能:sum = lambda x,y: x + yprint(sum(1,2))# 输出结果为:3# lambda后面跟随的是参数,“:”后就是要求参数实现的运算。
# 2> Map函数# 使用Map函数需要两个东西,一个是函数,一个是列表。# Map的功能就是将列表的元素依次传入函数,最后返回一个列表。# 我们可以用list()或者for循环来查看内容。# 我们下面举一个例子:def names(a): return a.title()l = ['xixi','didi','dada']s = ['dudu','qiqi','dingding']print(list(map(names,l)))# 将l列表的每个元素都依次扔进names函数,然后输出。# 结果为:['Xixi', 'Didi', 'Dada']
# 当然用for也可以遍历元素。for i in map(names,s): print(i)# 输出结果为:# Dudu# Qiqi# Dingding # 下面我们结合lambda后,看看代码会变成什么样。print(list(map(lambda x: x.title(),l )))# 输出结果为:['Xixi', 'Didi', 'Dada']
# 3> Reduce函数# 这个函数与map很相似,只不过引入了一个累加的概念。# 所以,他也需要一个函数,和一个列表。# 他还有另外一个参数——初始值。# 下面举例讲解。# reduce函数在functools里,所以我们需要进行导入。from functools import reducedef add(x,y): a = x + y return az = [1,2,3,4,5,6]print(reduce(add,z))# 结果为:21# 运算的过程是先传入1和2做加法,随后传入3,再与1+2做加法...# 以此类推:1+2+3+4+5+6=21
# 我们再添加一个默认值:20print(reduce(add,z,20))# 结果为:41# 我们可以把默认值理解为第一个数。# 20+1+2+3+4+5+6=41
# 最后,我们引入lambda看看语句的变化。print(reduce(lambda x,y: x + y,z,20))# 用lambda实现add()的功能,结果保持不变:41
# 4> Filter函数(又称过滤函数)# 这个函数就简单很多了,功能就是过滤。print(list(filter(lambda x: x<5,z)))# 不用过多解释,原理与前面几个函数相同。# 输出结果为:[1, 2, 3, 4]
# 5> Enumerate函数(又称枚举函数)# 这里需要给大家介绍索引的概念。# 一般看到index就是控制索引的参数。# 通过True&False对其控制。# 索引可以理解为书的页码,他告诉你这个东西在哪里。# 要记住的是索引一般是从0开始的。# 我们具体的看一下enumerate怎么用。for i,j in enumerate(l): # l为前面定义的列表。 print(i,j)# 结果为:# 0 xixi# 1 didi# 2 dada
# 我们做一个小的优化。将索引从1开始。for i,j in enumerate(l): # l为前面定义的列表。 print(i + 1,j)# 结果为:# 1 xixi# 2 didi# 3 dada
# 这五个函数是我们初级阶段需要掌握的。

浙公网安备 33010602011771号