匿名函数 排序函数, 过滤函数 映射函数 递归函数
lambda匿名函数:
为了解决一些简单的需求而设计的一句话函数
语法:
函数名 = lambda 参数: 返回值
注意:
1,函数的参数可以有多个参数,用逗号隔开
2,匿名函数不多多复杂,只能写一行,且逻辑结束后直接返回数据
3,返回值和正常函数一样,可以是任意数据类型
匿名函数并不是说一定没有名字,这里面前面的变量就是一个函数名,可以通过__name__查看变量
统一交lambda,在调用时候没有什么特别,像正常的函数调用即可.
a = lambda n: n*n print(a(3)) print(a.__name__) >>>>>>>>>>> 9 <lambda>
suiyi = lambda x, y: 1, 2 # 笔试题 print(suiyi) >>>>>>>>>>>>>>>>>>>. (<function <lambda> at 0x000000000052D2F0>, 2) # 返回俩个参数的时候必须用括号
sorted() 排序函数:
语法: sorted(iterable,key=None,reverse=False)
iterable:可迭代对象
key:排序规则(排序函数).在sorted内部会将可迭代对象中的每一个元素传递给key计算出一个数 字,作为当前这个元素的权重,整个函数根据这个权重来进行排序 .
reverse:是否是倒叙. True:倒叙,False:正序
lst = [5, 5, 2, 3, 1, 6] print(sorted(lst)) # 和函数组合使⽤ # 根据字符串长度进⾏排序 lst = ["麻花藤", "冈本次郎", "中央情报局", "狐仙"] # 计算字符串长度 def func(s): return len(s) print(sorted(lst, key=func)) # 和匿名函数组合使用 print(sorted(lst, key=lambda s: len(s))) >>>>>>>>>>>>>>>>>> [1, 2, 3, 5, 5, 6] ['狐仙', '麻花藤', '冈本次郎', '中央情报局'] ['狐仙', '麻花藤', '冈本次郎', '中央情报局']
filter() 筛选函数
语法:filter(function,iterable)
function:用来筛选的函数,在filter中会自动的把iterable中的每个元素传递给function,然后根据function返回的True或者False来判断是否保留此项数据
iterable:可迭代对象
map()映射函数
语法:map(function,iterable) 可以对可迭代对象中的每一个元素传递给function,结果就会function的返回值.
递归函数:
在函数中调用函数本身就是递归.
递归的最大深度是998
应用: 可以使用递归来遍历各种树形结构.
例子:使用递归来遍历文件夹中的所有文件
import os def func(filepath,n): files = os.listdir(filepath)# 打开这个文件 for file in files: # 拿到每一个文件名 lujing = os.path.join(filepath, file) # 拿到路径 if os.path.isdir(lujing): # 判断是否是文件夹 print("\t"*n, file) # 如果是文件夹 再执行一遍 func(lujing, n+1) else: # 不是 打印文件名 print("\t"*n, file) func("d:/untitled",0)