zoukankan      html  css  js  c++  java
  • 递归,匿名函数

    一、三元运算符

    三元运算符也称三目运算符,就是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、结合内置函数来使用:内置函数某些参数需要一个函数地址,可以赋值一个有名函数名,也可以直接赋值匿名函数

  • 相关阅读:
    51Nod-1006【LCS】+【输出路径】模板题
    POJ 2250 Compromise【LCS】+输出路径
    洛谷 P1387 最大正方形 【dp】(经典)
    【hdu】4521 小明序列【LIS变种】【间隔至少为d】
    HDU 1025 城市供应 【LIS】
    hdu 2191 悼念512汶川大地震遇难同胞 【多重背包】(模板题)
    HDU 2159 FATE【二维完全背包】
    POJ 1384 Piggy-Bank【完全背包】+【恰好完全装满】(可达性DP)
    洛谷 P1474 货币系统 Money Systems(经典)【完全背包】+【恰好装满的最大方案数量】
    洛谷 P1057 传球游戏 【dp】(经典)
  • 原文地址:https://www.cnblogs.com/yanminggang/p/10655041.html
Copyright © 2011-2022 走看看