python全栈脱产第12天------函数的递归、三元表达式、列表生成式、字典生成式、匿名函数

一、函数递归

  定义:函数的递归调用是函数嵌套调用的一种特殊形式,在调用一个函数的过程中又直接或是间接地调用该函数本身,称之为函数的递归调用

  递归调用的两个阶段:1.回溯:一次次递归下去,需要注意每一次重复问题的规模都应该有所减少,直到逼近一个最终的结果,即需要一个结束的条件

            2.递推:往回一层一层推算出结果

  算法:高效地解决某一个问题的方法/套路

    二分法:在一个从大到小或是从小到大排列的一个列表中找一个数,每次都与列表的中间的那个值作比较,然后截取可能存在需要寻找值的一边列表继续寻找,直到找到。

二、三元表达式

  在条件成立的情况下返回一个值,不成立的情况下返回另一个值,if......else......

三、列表生成式

  用途:列表添加减少值

  names=['alex','lqz','yyh','fm']

  l=[]

  for name in names:

    res=name+'DSB'

    l.append(res)  #l=[name+'DSB' for name in names]

四、字典生成式

  用途:用于两个列表组合成一个字典,其中一个列表变为key值,一个变为value

  keys=['name','sex','age']

  values=['egon','male','18']

  dic={}

  for i,k in enumerate(keys):

    dic[k]=values[i]  #dic={k:values for i,k in enumerate(keys)}

五、匿名函数

  定义:就是没有名字的函数

  用途:用于仅仅一次使用的场景,没有重复使用过的必要

  精髓:没有名字,绑定名字是没有意义的

  用法:与内置函数一起使用,在语句前面加lambda

  max、min、sum:都是用for循环来实现,返回一个结果当做依据

  方法:sorted:排序,从小打到排序,末尾加上reverse=True

     map:把一个列表按照我们自定义的映射规则映射成个新的列表

     filter:从一个列表中过滤出符合我们过滤规则的值

       原理:相当于for循环取出没一个人名,然后传值给匿名函数,将调用匿名函数返回值为True的那个值留下来

     reduce:把多个值合并成一个值

    

posted on 2018-08-06 20:22  周毅  阅读(77)  评论(0编辑  收藏  举报