【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
# 这五个函数是我们初级阶段需要掌握的。

posted @ 2021-02-02 13:50  泥鳅不怕水  阅读(52)  评论(0)    收藏  举报