• 递归,匿名函数


    一、三元运算符

    三元运算符也称三目运算符,就是if .....else.....语法糖

    前提:if 和 else 只有一条语句

    例:a = 20

           b = 30

           res = a if a > b else b     #求最大值

    三元运算符的结果不一定要与条件直接有关系

    二、推导式:列表(元组)与字典的转换语法糖

    1、列表(元组)推导式

    dic = {'a':1,'b':2,'c':3}

    res = [(k, v) for k , v in dic .items()]

    print(res)                                         #[('a',1),('b',2),('c',3)]

    元组直接在得到的列表的基础上tuple转一下就可以了

    2、字典推导式

    l = [('a',1),('b',2),('c',3)] 

    res = {k: v for k ,v in l}

    print res                                          #dic = {'a':1,'b':2,'c':3}

    案例:

    range 可以被推导为列表

    res_ls = [arg for arg in range(10)]

    print(res)                                          # [0,1,2,3,4,5,6,7,8,9]

    迭代出可解压为单列容器的就可以推导出字典

    res_dic = {v: k for k, v in enumrate('abc')}

    print(res_dic)                                   #{'a': 0 , 'b' : 1 , 'c' : 2}

    3、列表推导式格式:

    [k for k in iter if 筛选条件]

    三、递归:回溯与递推

    回溯:询问答案的过程

    递推:推出答案的过程

    1、前提:

                 回溯到一个有具体结果的值,开始递推

                 回溯与递推的条件要有规律

    2、递归本质:函数的自我调用

    def a():

          global count

           count += 1

           if count > 50:

                  return 

           a()

    a()                                 #自己调自己

     

     

    def b():

          c()

    def c():

          d()

    def d():

          b()

    b()                                #间接调自己,一旦形成循环调用,就产生了递归

    四、匿名函数:没有名字的函数,没有函数体,只有一个返回值

    语法:lambda  参数列表  一个返回值表达式

               lambda x,y : x + y

    应用场景:

              1、匿名函数函数地址可以被一个变量接受,该变量就可以作为函数名来使用,但就违背了匿名的初衷

               2、结合内置函数来使用:内置函数某些参数需要一个函数地址,可以赋值一个有名函数名,也可以直接赋值匿名函数

  • 相关阅读:
    springboot部署到tomcat
    新建 SecondPresenter 实现类
    BaseFragment 基类
    BaseActivity 基类
    ProxyImpl 类
    BaseFragment 基类代码
    对于大量数据存储入库问题的解决办法
    MainActivity.java 文件
    activity_main.xml 添加自己画的view 组件
    MyView.java 自己画的view
  • 原文地址:https://www.cnblogs.com/yanminggang/p/10655041.html
Copyright © 2020-2023  润新知