匿名函数、sorted()、filter()、map()、递归
一、匿名函数
1.lambda 匿名函数
方法 lambda 参数:返回值 (函数名统一叫lambda)
def func(n): return n**2 print(func(3)) #这是一个普通的函数,返回值是3 a = lambda n : n**2 print(a(3)) #这是匿名函数,返回值也是3
匿名函数的参数可以两个或多个,返回值也可以是两个或多个。(当返回值是两个以上的时候要用括号括起来),在参数位置如果传人多个参数可以使用*args。
二、sorted() 排序函数
语法:sorted(iterable,key,reverse) key:排序规则 reverse参数不给就是升序,给True就是降序。
运行流程:把可迭代对象中的每一个元素交给后面的key函数来执行。得到一个数字(权重),通过这个数字进行排序。
如是字典,返回排序后的key
dic = {1:"A",3:"C",2:"B"} print(sorted(dic)) #[1, 2, 3]
lst = ["布加迪威航","法拉利","奥迪A8","11路公交车"] def func(s): return len(s) print(sorted(lst,key=func)) #['法拉利', '奥迪A8', '布加迪威航', '11路公交车'] print(sorted(lst,key=lambda s : len(s))) #['法拉利', '奥迪A8', '布加迪威航', '11路公交车']
三、filter() 过滤函数
语法:filter(function,iterable)
把可迭代对象中的每一个元素交给前面的函数进行筛选,函数返回Ture或者False
四、map() 映射函数
语法:map(function,iterable)
把可迭代对象中的数据交给前面的函数进行执行,返回值就是map()的处理结果
(这里的映射也具有水桶效应)
五、递归
本质:函数自己调用自己
最大深度:1000,但是不到1000就会停下来
通过递归思想去实现打开本地的某个文件夹里面的所有文件名称
import os#引入os模块 def func(filepath,n): flies = os.listdir(filepath)#打开你输入的文件夹 for file in flies:#循环当前文件夹里面的内容 file_path = os.path.join(filepath,file)#给文件名称加上路径 if os.path.isdir(file_path):#如果某个文件是文件夹,就打印名字并且再次调用函数 print("\t"*n,file,":") func(file_path,n+1) else: print("\t"*n,file) func("e:/python视频",0)#第二个参数主要是用来显示层次用的