zoukankan      html  css  js  c++  java
  • 匿名函数 排序函数, 过滤函数 映射函数 递归函数

    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("	"*n, file)
                    # 如果是文件夹 再执行一遍
                func(lujing, n+1)
            else: # 不是 打印文件名
                print("	"*n, file)
    func("d:/untitled",0)
    递归遍历文件夹中的文件

        

      

  • 相关阅读:
    Cordova 配置文件
    Mac 配置gradle环境变量
    React实现TabBar切换,带动画效果
    【Mac】基于Android Studio搭建cordova开发环境
    Spring之IOC控制反转
    Spring Boot笔记三:Spring Boot之日志
    Spring Boot笔记二:Spring Boot配置文件
    java的代理机制
    Spring Boot笔记一:Spring Boot入门
    Spring Boot笔记
  • 原文地址:https://www.cnblogs.com/y122988/p/9481205.html
Copyright © 2011-2022 走看看