ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 帮助链接 1. [官方链接-英文](https://docs.python.org/3/library/functions.html?highlight=built#ascii) 2. [菜鸟链接-中文](https://www.runoob.com/python3/python3-built-in-functions.html) ## 匿名函数lambda 匿名函数就是不需要显式的指定函数名,使用lambda方法 * 案例 ``` def calc(x,y): return x**y print(calc(2,5)) #换成匿名函数 calc = lambda x,y:x**y print(calc(2,5)) ``` 匿名函数主要是和其它函数搭配使用的呢,如下 ``` print(list(map(lambda x:x**2,[1,5,7,4,8]))) [1, 25, 49, 16, 64] ``` ## map,filter,redure 这三个方法都是需要传入一个函数和列表,然后对函数和列表进行操作,常与`lambda`匿名函数配合使用. ### map依次执行行数 * 语法: `map(function, sequence)` * 用途: 对sequence中的item依次执行function(item),见执行结果组成一个List返回: * 代码案例 ```python l1=[1,3,7,8] a=map(lambda x:x*x,l1) print(type(a)) for n in a: print(n) #输出 <class 'map'> 1 9 49 64 ``` ### filter条件过滤函数 * 语法: `filter(function, sequence)` *用途: 对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回。 可以看作是过滤函数 * 代码案例 ```python l1=[1,3,7,8] b=filter(lambda x:x>4,l1) print(type(b)) for i in b: print(i) #输出 <class 'filter'> 7 8 ``` ### reduce累计函数 * 语法: `reduce(function, sequence, starting_value)` * 用途: 对sequence中的item顺序迭代调用function,如果有starting\_value,还可以作为初始值调用,例如可以用来对List求和: * 代码案例 ``` l1=[1,3,7,8] import functools c=functools.reduce(lambda x, y: x+y ,l1) print(type(c),c) #输出 <class 'int'> 19 ```