• day 13三元表达式、递归、匿名


    一、三元表达式应用:

    1、条件成立返回一个值

    2、条件不成立返回一个值

    def age(n):
    return 18 if n==1 else age(n-1)+2
    print(age(5))

    二、递归

    函数递归:函数的递归调用,即在函数调用的过程中,又直接或间接地调用了函数本身

    def bar()
      print('form bar')
      fucn()
    def func()
      print('from func')
      bar()
    func()

    递归分两个阶段
    1、回溯:
      一定要在满足某种条件结束回溯,否则无限递归
    2、递推
    总结:
    1、递归一定要有一个明确地结束条件
    2、每进入下一次递归,问题的规模都应该减少
    3、在python中没有尾递归优化
    def age(n):
      if n==1:
        return 18
      return age(n-1)+2
    age(5)


    items=[1,[2,[3,[4,[5,[6]]]]]]
    def tell(1):
      for item in l:
        if type(item) is not list:
          print(item)
        else:
          tell(item)
    tell(items)


    三、匿名
    强调:
    1匿名的目的就是要没有名字,给匿名函数赋给一个名字是没有意义的
    2匿名函数的参数规则、作用域关系与有名函数是一样的
    3匿名函数的函数体通常应该是一个表达式,该表达式必须要有一个返回值

    a=lambda x,y:x**y

    print(a(2,4))

    lin={
    'aa':1000,
    'bb':233,
    'cc':133,
    'dd':500
    }


    lin=sorted(lin,key=lambda x:lin[x])
    print(lin)
    lin=max(lin,key=lambda x:lin[x])
    print(lin)
    lin=min(lin,key=lambda x:lin[x])
    print(lin)

    name=[1,2,3,4,]
    res=map(lambda x:x**2,name)
    print(list(res))

    name=['alex','wxx','yh']
    res=map(lambda x:x+'nb'if x=='yh'else x+'sb',name)
    print(list(res))

    res=map(lambda x:x+'nb',name)
    print(list(res))

    from functools import reduce
    res=reduce(lambda x,y:x+y,range(1,101))
    print(res)

    l=['my','name','is']
    res=reduce(lambda x,y:x+''+y+'',l)
    print(res)

    ages=[11,20,67,22]
    res=filter(lambda x:x>=20,ages)
    print(list(res))

    names=['aa','ab','ca']
    res=filter(lambda x:x.endswith('a'),names)
    print(list(res))

    内置函数






  • 相关阅读:
    Bootstrap-模态框Modal使用
    MVC Controller return 格式
    数据库水平拆分和垂直拆分区别(以mysql为例)
    MySQL 对于大表(千万级),要怎么优化呢?
    mysql优化案例
    Mysql大表查询优化技巧总结及案例分析
    Mysql Partition 理论知识总结
    mysql Partition(分区)初探
    MySQL partition分区I
    xapian安装
  • 原文地址:https://www.cnblogs.com/lg04551/p/8693081.html
Copyright © 2020-2023  润新知