匿名函数 排序函数, 过滤函数 映射函数 递归函数

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]
['狐仙', '麻花藤', '冈本次郎', '中央情报局']
['狐仙', '麻花藤', '冈本次郎', '中央情报局']
sorted()函数用法

 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)
递归遍历文件夹中的文件

 

 

    

  

 

posted on 2018-08-15 14:28  yw1229  阅读(147)  评论(0编辑  收藏  举报

导航