zoukankan      html  css  js  c++  java
  • 匿名函数的使用


    '''
    匿名函数:
    注意:
    1,不会单独使用,会与其他函数配合使用,
    2,匿名函数的精髓在于没有名字,如果没有名字意味着用一次就立刻回收
    所以匿名函数的应用场景就仅应用于值使用一次的场景

    配合使用的内置函数:max min sorted filter map

    需求:有一个字典,求出最大工资的那个人民
    salaries = {
    'egon':3000,
    'alex':1000000,
    'wupeiqi':100001111,
    'yuanhao':2000
    }
    ##传统做法
    for k,v in salaries.items():
    if v == max(salaries.values()):
    print(k)
    ####用匿名函数的做法
    print(max(salaries,key= lambda x:salaries[x]))
    # print(min(salaries,key= lambda x:salaries[x]))

    按照薪资排序,从小到大牌
    print(sorted([1,3,5,1,2,4,5,8,9]))

    print(sorted(salaries,key=lambda x:salaries[x]))

    map的作用:映射
    应用:
    names = ['alex','wupeiqi','yuanhao','liuqingzheng']
    obj = map(lambda x:x+'_sb',names)
    print(obj)
    print(obj.__next__())
    print(list(obj))

    filter的应用:过滤
    names = ['wupeiqi_sb', 'yuanhao_sb', 'liuqingzheng_sb','egon']
    将以SB结尾的过滤掉
    ##需求:将names中以sb结尾的移除掉
    names = ['wupeiqi_sb', 'yuanhao_sb', 'liuqingzheng_sb','egon']
    ###传统做法:
    for i in names:
    if i.endswith('sb'):
    names.remove(i)
    print(names)
    ###运用匿名函数的做法:
    names = ['wupeiqi_sb', 'yuanhao_sb', 'liuqingzheng_sb','egon']
    ls = [name for name in names if not name.endswith('sb')]
    print(ls)


    '''
    def func(x,y):
    return x+y

    res = (lambda x,y:x + y)(1,4)
    # print(res)
    # print(lambda x,y:x + y)
    salaries = {
    'egon':3000,
    'alex':100000,
    'wupeiqi':1000,
    'yuanhao':2000
    }
    # print(sorted([1,3,5,1,2,4,5,8,9]))
    # print(sorted(salaries,key=lambda x:salaries[x]))
    # print('='*100)




  • 相关阅读:
    ASP.NET MVC EF4.1
    RabbitMQ Boot Step
    图书商城项目总论
    CodeSharp.EventSourcing框架介绍如何实现异步事件订阅
    asp.net的cms 原理篇
    异步编程:线程概述及使用
    2012
    CodeSharp.EventSourcing框架介绍
    最近开发的一个文档管理系统
    团队项目开发
  • 原文地址:https://www.cnblogs.com/1832921tongjieducn/p/10785804.html
Copyright © 2011-2022 走看看