匿名函数、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
View Code

    匿名函数的参数可以两个或多个,返回值也可以是两个或多个。(当返回值是两个以上的时候要用括号括起来),在参数位置如果传人多个参数可以使用*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路公交车']
View Code

三、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)#第二个参数主要是用来显示层次用的
View Code

 

  

  

posted @ 2018-08-15 15:39  被嫌弃的胖子  阅读(217)  评论(0编辑  收藏  举报