zoukankan      html  css  js  c++  java
  • 内置函数拓展,递归函数

    1. lambda匿名函数

    lambda 就是为了解决一些简单的需求而设定的一句话函数

    举例:

    计算一个数的平方:

    用函数写:def func(n):

         return n*n

    用匿名函数写:f = lanbda n: n*n

    语法:函数名 = lambda 参数: 函数体

    注意:
    1. 函数的参数可以有多个. 多个参数之间用逗号隔开
    2. 匿名函数不管多复杂. 只能写一行, 且逻辑结束后直接返回数据
    3. 返回值和正常的函数一样, 可以是任意数据类型

         

    2. sorted()

    排序函数.
    语法: sorted(Iterable, key=None, reverse=False)

    lterable 可以迭代的对象

    key 排序规则,可以用函数写,也可以用匿名函数写.根据自己具体需要排序的要求

    reverse 是否需要倒序,如果写True,默认是False

    举例:lst = [1,5,6,9,2,3,8]

      lst2= sorted(lst)  #打印结果是 1,2,3,5,6,8,9

    3. filter()

    语法: filter(function. Iterable)

    function: 用来筛选的函数. 在filter中会自动动的把iterable中的元素传递给function. 然后
    根据function返回的True或者False来判断是否保留此项数据

    lterable:可迭代对象

    lst = [1,2,3,4,5,6,7]
    ll = filter(lambda x: x%2==0, lst) # 筛选所有的偶数
    print(ll) #直接打印是内存地址
    print(list(ll)) #[2,4,6]


    4. map()

    映射函数
    语法: map(function, iterable) 可以对可迭代对象中的每一个元素进行映射. 分别取执值function
    举例:

    def func(e):
      return e*e
    mp = map(func, [1, 2, 3, 4, 5])
    print(mp) #执行也是一串内存地址
    print(list(mp)) #装进列表后每一个元素的平方


    5. 递归函数

    递归函数的本意就是函数就是函数里面调用本身

    注意要有文件的入口以及出口,如果一直调用的话,会进行死循环,并且到达pycharm深度后会报错.

    举例:

    import os
    def read(filepath, n):
      files = os.listdir(filepath)                    # 获取到当前文件夹中的所有文件
      for fi in files:                                       # 遍历文件夹中的文件, 这里获取的只是本层⽂文件名
        fi_d = os.path.join(filepath,fi)      # 加入文件夹 获取到文件夹+文件

          if os.path.isdir(fi_d):            # 如果该路径下的文件是文件夹
            print(" "*n, fi)
            return read(fi_d, n+1)            # 继续进行相同的操作
          else:
            print(" "*n, fi)              # 递归出口. 最终在这里隐含着return

    read('../oldboy/', 0)       #递归遍历文件下的所有文件名

  • 相关阅读:
    ORACLE常用SQL优化hint语句
    TestNG 入门教程
    博客迁移
    WebMvcConfigurer
    Nginx 配置
    SpringBoot部署
    MyBatis 动态 SQL
    Spring Boot 验证表单
    Spring Boot session与cookie的使用
    Spirng MVC 重定向传递对象
  • 原文地址:https://www.cnblogs.com/lowen107/p/9910847.html
Copyright © 2011-2022 走看看