zoukankan      html  css  js  c++  java
  • 匿名函数&&常用内置函数(方法)

    1.匿名函数   

    定义:没有名字的函数,名称空间使用一次就释放 ,一般匿名函数都要配合其它函数去使用,单独使用没有意义

    lambda x,y:x+y        冒号前面是参数,后面是返回值  

    等价于====》

    def  func(x,y):
        return x+y
    匿名
    lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用一次就释放,除非让其有名字
    #让其有名字就没有意义

    匿名函数与有名函数区别:

    #有名函数与匿名函数的对比
    有名函数:循环使用,保存了名字,通过名字就可以重复引用函数功能
    
    匿名函数:一次性使用,随时随时定义
    
    应用:max,min,sorted,map,reduce,filter

    2.内置函数(方法)

    1.max原理 与lambda结合使用   字典示例

    max(args,key=#)   
    # 这里的key不是字典里的key 是max按照什么来比较
    #列表:默认按索引取出所有的值作比较,字典:默认取出所有的key作比较
    salary = {'egon':3000,'alex':10000,'jason':2900}
    print(max(salary)) # jason
    print(max(salary,key = lambda k:salary[k] )) #alex
    key 用来定义比较规则,比较输出结果还是原来的字典key
    原理分析:
    1.按照key lambda的返回值排序,字典的k会传给lambda作为参数
    2.比较完成后会输出数字最大的字典的key

    2. min

    3.zip  压缩,又称拉链函数

    l1 = 'hello'
    l2 = [1,2,3]
    l3 = zip(l1,l2)
    print(list(l3))   #[('h', 1), ('e', 2), ('l', 3)]

    4.sorted   排序

    print(sorted(salary,key=lambda k:salary[k],reverse=True))

    5. map  把列表中的字符串映射成新的值

    names = ['egon','wu','alex']
    g = map(lambda name:'%s_sb'%name,names)
    print(list(g))   #['egon_sb', 'wu_sb', 'alex_sb']

    6.filter  过滤   过滤以sb结尾的名字

    names = ['egon', 'wu_sb', 'alex_sb']
    g = filter(lambda x:x.endswith('sb'),names)
    print(list(g))

    7.reduce 累加 1-100累加

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

    8.其它常用

    #掌握:
    #divmod
    print(divmod(10001,125))    #商余   用于分页
    
    #enumerate
    l = ['a','b','c']
    # enumerate(l)   生成可迭代对象((0, 'a') (1, 'b') (2, 'c'))
    for index,value in enumerate(l):
        print(index,value)
    
    #eval  字符串中的对象提取出来 并执行一下
    eval('print("xxx")')
    
    #reversed 反转
    print(list(reversed(l)))
    #chr  将数字转成ascii码表中对应的字母
    print(chr(100))
  • 相关阅读:
    stm8s103 EEPROM烧程序时能否保留
    NEC芯片特别说明
    pic中断特别说明
    删除排序链表中的重复元素 II
    被围绕的区域
    计数二进制子串
    简单工厂模式
    打家劫舍 II
    打家劫舍
    相同的树
  • 原文地址:https://www.cnblogs.com/bigbox/p/11869780.html
Copyright © 2011-2022 走看看