zoukankan      html  css  js  c++  java
  • 三元表达式/函数的递归/匿名函数及其应用/map函数/reduce函数/ filter函数

    def max2(x,y):
        if x>y:
            return x
        else:
            return y
    res=max2(10,11)
    print(res)
    

    ①三元表达式就是取代上述代码的if判断,将他写成一行。

    x=10
    
    y=11
    
    res=x if x>y else y
    

      三元表达式仅针对条件成立或者不成立,

    定义

    def max2(x,y):
        return x if x>y else y
    print(max2(10,11))
    

     ②函数的递归

    1.直接调用

    def foo():
    
      print('from foo')
    
      foo()
    
    foo
    

    2.间接调用

    def bar():
    
      print('from bar')
    
      foo()
    
    def foo():
    
      print('from foo')
    
      bar()
    foo()
    

    递归分为两个阶段

    1.回溯  一定要满足某种条件回溯,否则无限递归

    2.递推  

    =================================

    递归其实就是循环过程

    =================================

    递归比循环有优势

    1.while循环需要知道循环多少次,

    2.递归只需要把控一个条件,根本不用考虑多少次做完

    =================================

     

    ③匿名函数及其应用

    lambda x y:return x +y

    max

    min

    sorted

    map

    reduce

    filter

    有名函数: def跟函数名

    匿名函数:没有return,相当于自带return                (匿名函数相当于避孕套,随用随丢)

    匿名函数不会单独使用,通常是和其他函数一起使用

    #强调

    1.匿名的目的就是要没有名字,给匿名函数赋给一个名字是没有意义的

    2.匿名函数的参数规则,作用域关系与有名函数是一样的。

    3.匿名函数的函数体通常应该是一个表达式,该表达式必须有一个返回值

    f=lambda x,n: x>n
    

    什么时候用匿名函数呢?

    函数体非常简单的时候

    例如

    有名函数:def func(x,y,z):
    
      return x+y+z
    
    匿名函数:lambda x,y,z: x+y+z
           (自带return)
    

      内置函数

     lambda与map,reduce,fileter 

    nums=[1,2,3,4,5]

    map() 

    reduce  nums[1,2,3,4,5]

    filter

    map()映射关系
    
    name=['alex','wu pei qi','yuanhao']
    
    res=map(lambda x:x+'_SB',names)
    
    print(list(res))
    
    [name]=['alex','wupeiqi','yuanhao','egon']
    
    res=map(lambda+ x:x+'_SB',names)
    
    [name]=['alex','wupeiqi','yuanhao','egon']
    
    res=map(lambda x:x+'_NB'+'_SB',names)
    

      

    from funtools import reduce

    reduce(range(1,101))

    reduce()合并的意思
    
    from functools import reduce
    
    res=reduce(lamda x,y:x+y,range(1,101))
    
    print(res)
    

      filter()过滤功能 

  • 相关阅读:
    提取PDF内容保存到Excel--Python3实现
    Python正则表达式常用语法
    我的数学建模之路
    Git基本用法
    PDF电子发票内容提取
    获取代理IP地址
    adb 命令 exec-out 直接截图保存到电脑出错的解决办法
    Python基础十一:使用模块
    MSTP生成树实验
    防火墙双机热备概念
  • 原文地址:https://www.cnblogs.com/wangmiaolu/p/8692817.html
Copyright © 2011-2022 走看看