Dotcpp  >  编程教程  >  Python函数  >  Python三大基础函数

Python三大基础函数

点击打开在线编译器,边学边练

在Python中有三个基础函数,分别是filter()、map()和reduce(),他们分别为我们提供过滤、映射和聚合的功能。上一节我们简单的使用了filter()函数结合匿名函数,下面我们会详细介绍它的用法。

1. filter()函数

在数据筛选和过滤的时候我们通常会采用filter()函数帮助我们快速的解决问题,它的语法格式为:

filter(函数,可迭代对象)

在filter函数中,前面放我们的过滤或筛选方式,即函数名,后面存放可迭代的对象,我们看下面的例子:

def test(x):
    if x % 2 == 0:
        return x
my_list = [1,2,3,4,5,6]
print(filter(test,my_list))#只需要些函数名即可,不用加参数

输出结果:

<filter object at 0x034C2DD8>

关于这个例子,我们首先定义了一个test()函数,如果x是偶数则返回其值,然后通过filter()函数使用test()函数来过滤my_list列表,但是输出结果却是<filter object at 0x034C2DD8>,在这里我们需要注意filter()函数的返回值为一个可迭代的对象,我们需要通过迭代的方式访问其中的值,或者使用列表list()函数强制类型转换。

def test(x):
    if x % 2 == 0:
        return x
my_list = [1,2,3,4,5,6]
print(filter(test,my_list))
for i in filter(test,my_list):
    print('迭代后中的数据:',i)
print('使用list()方法:',list(filter(test,my_list)))

输出结果为:

迭代后中的数据: 2
迭代后中的数据: 4
迭代后中的数据: 6
使用list()方法: [2, 4, 6]

2. map()函数

在前面我们曾多次使用到过map()函数,例如我们在输入多个值的时候,我们会采用map()函数,我们需要输入四个值的时候:

a,b,c,d = map(int,input().split())
print(a,b,c,d)

map()函数的语法格式为:

map(函数,可迭代对象)

在使用map()函数的时候,我们大多用于对数据的处理,把可迭代对象中的数据经过函数处理之后存储,我们在存储的时候继续采用list()函数进行存储。

我们先看上面输入四个值的例子,int为函数,input().splite输入的值为可迭代的对象,经过int函数的处理后存放在map对象当中。

我们可以通过map()函数将一个序列中的所有数据通过一个函数进行处理,看下面的例子:

我们在一个列表中存放了一下字母,如果存在小写字母,那么将它变成大写字母。

代码如下:

def test(x):
    if x.islower():
        return x.upper()
    else:
        return x
my_list = ['d','o','t','C','p','P']
print(list(map(test,my_list)))

输出结果为:

['D', 'O', 'T', 'C', 'P', 'P']

test()函数中会先对x进行判断,如果是小写字母就返回它的大写字母,如果不是小写字母就返回它的值。

3. reduce()函数

reduce()函数用于把可迭代的对象通过函数方法进行聚合。

语法格式为:

reduce(函数, 可迭代对象[, 初始值])

举个例子,我们已知一个列表为[1,2,3,4],我们需要求列表里所有项依次相乘的和,我们可以使用reduce()函数。

from functools import reduce#reduce函数在functools模块中定义,需要引入
def test(x,y):
    return x * y
my_list = [1,2,3,4]
print(reduce(test,my_list))

输出结果为:

python函数3

第一行代码为引入这种方法,后面会对模块进行讲解,test()函数返回了两个数据相乘,然后通过reduce()函数将my_list列表处理。

处理过程如下图:

    python函数4

先执行第一步,然后得到一个结果再和后一项相乘,依次到最后一位。

4. 总结

这三种函数我们常用的为前两者,熟练掌握这三个函数能够帮助我们解决一系列复杂的问题,下一节我们来学习递归函数。



本文固定URL:https://www.dotcpp.com/course/261

上一课:

Python匿名函数

下一课:

Python递归函数

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Python教程
第一章 Python入门
第二章 Python基础语法
第三章 Python入门语法
第四章 Python核心语法
第五章 Python函数
第六章 Python面向对象编程
第七章 Python模块
第八章 Python异常处理和程序调试
第九章 Python文件及目录操作
第十章 PythonGUI编程
第十一章 Python进程和线程
第十二章 Python数据库管理
第十三章 Python算法
第十四章 Python爬虫
第十五章 Python实战项目
第十六章 后记
Dotcpp在线编译      (登录可减少运行等待时间)