zoukankan      html  css  js  c++  java
  • Python之匿名函数

    1、介绍

    也叫 lambda 表达式

    a.匿名函数的核心:一些简单的需要用函数去解决的问题,匿名函数的函数体只有一行

    b.参数可以有多个,用逗号隔开

    c.返回值和正常的函数一样可以是任意的数据类型

    d.匿名函数不支持复杂的逻辑判断

    e.一般跟其他函数搭配使用

    普通函数与匿名函数的对比:

    #普通函数
    def add(a,b):
        return a + b
     
    print(add(2,3))
    
    
    #匿名函数
    add = lambda a,b : a + b  # 相当与 return a+b
    print add(2,3)
     
    正确用法:
    print((lambda a,b:a+b)(4,5))


    2、匿名函数练习

    li = list(range(10))
    print(max(li, key=lambda x: li[li.index(x)]))
    比较数大小
    salaries={
    'egon':3000,
    'alex':100000000,
    'wupeiqi':10000,
    'yuanhao':250
    }
    
    # 普通函数
    def get_value(k):
        return salaries[k]
    
    # print(max(salaries,key=get_value))
    # print(min(salaries,key=get_value))
    
    # 匿名函数
    print(max(salaries,key=lambda x:salaries[x]))   # 取谁的工资最大
    # 先  next salaries,得到 键名,定义匿名函数 key=lamdba x:salaries[x]
    # lamdba x # x 是匿名函数需要的参数,由  salaries[x] 来提供,[x]里的 x 是前面得到的 键名,得到键值,通过键值来进行排序后,返回键名
    取谁的工资最大
    data = list(range(10))
    print(list(map(lambda x: x*x, data)))
    搭配map函数
    str =['a','b','c','d']
    def fun(s):
        if s != 'a':     # 过滤条件,如果不等于,返回值
            return s 
    ret = filter(fun,str)  # 格式:filter(函数名,序列),遍历序列
    print(list(ret))   #['b', 'c', 'd']  显示过滤结果,bcd 不等于 a
    print(ret)   # <filter object at 0x0000000001044240> 即是过滤器对象,也是一个迭代器对象  
    
    例2:
    name_l=[{'name':'egon','age':18},
            {'name':'alex','age':1000},
            {'name':'yuanhao','age':2000}]
    
    res=filter(lambda d:d['age']>100,name_l)
    print(res)   # 返回 filter 对象
    for i in res:   # 遍历对象
        print(i)
    =====
    {'age': 1000, 'name': 'alex'}
    {'age': 2000, 'name': 'yuanhao'}
    搭配filter函数


    .

  • 相关阅读:
    高德地图信息窗体轮播及多组坐标点添加
    移动端适配及px转rem
    css伪类样式覆盖
    vue-amap-marker相关问题,信息窗体及自定义图片的偏移问题
    echart自定义图例样式及统计图颜色相关
    ts学习笔记[枚举类型]
    从面试中查漏补缺
    百度编译器插入自定义内容和样式(转)
    .net的母版页相关
    几种Position属性的用法
  • 原文地址:https://www.cnblogs.com/tootooman/p/8991190.html
Copyright © 2011-2022 走看看