zoukankan      html  css  js  c++  java
  • 匿名函数-lambda

    匿名函数

    匿名函数:为了解决一些功能很简单的需求而设计的一句话函数 (python对匿名函数支持有限,只有一些简单的条件下可以用匿名函数)

    匿名函数固定格式:

    func = lambda *args: args**2            #func:函数名    lambda:关键字     args:参数    args**2:返回值(参数的平方运算)

    示例:

    def func(n):
        return n*2
    print(func(5))          #10
    等价于:
    func = lambda n:n*2         #匿名函数,又叫 lambda表达式
    print(func(5))          #10

    匿名函数能和 三元表达式,列表推导式,生成器表达式 一起用 

    func1 = lambda n: True if n > 5 else False   # 匿名函数+三元表达式
    print(func1(4))      #False
    
    func2 = lambda : [i for i in range(10)]      # 匿名函数+列表推导式
    print(func2())
    #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    func3 = lambda : (i for i in range(10))      # 匿名函数+生成器表达式
    print(list(func3()))        # func3是生成器,强制list()取值
    #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    复制代码

    匿名函数和 map(),filter(),soted(),max(),min() 一起用

    字典:拿到最大值的键 
    
    dic = {'k1':10,'k2':100,'k3':30}
    
    func = lambda key: dic[key]          # 返回键的值
    t = max(dic,key=func)                # dic等价于['k1','k2','k3']  key=func()拿到每个key的值,用值对比
    #max(dic,key=lambda k:dic[k])        # 可以直接把匿名函数写成这样 (max() + lambda匿名函数)
    print(t)     # k2
    想当于:
    def func(key):
        return dic[key]
    a = max(dic,key=func)               # max([-5,2,-4,3],key=abs)
    print(a)     # k2
    ------------
    
    a = (map(lambda n: n**2,[1,2,3,4]))         #lambda 匿名函数+ map()
    print(list(a))      #[1, 4, 9, 16]
    ---------
    
    ((('a'),('b')),(('c'),('d'))) 用匿名函数写成[{'a': 'c'}, {'b': 'd'}] 
            ((('a'),('b')),(('c'),('d')))            # 等价于 (('a','b'),('c','d'))    print(('a') == 'a')   True
            r = zip(('a','b'),('c','d'))             # [('a', 'c'), ('b', 'd')]
            t = map(lambda n: {n[0]:n[1]},r)         # n 是 r 中的元组元素
            print(list(t))   # [{'a': 'c'}, {'b': 'd'}] 
  • 相关阅读:
    css sprite的实现
    python的range()函数使用方法
    Codeforces Round #260 (Div. 1) 455 A. Boredom (DP)
    n个整数全排列的递归实现(C++)
    AngularJS进阶(三十一)AngularJS项目开发技巧之获取模态对话框中的组件ID
    Swift扩展(Extension)
    leetcode 88 Merge Sorted Array
    Unity3D摄像机尾随人物
    mybatis 高级映射和spring整合之与Spring整合(6)
    mybatis 高级映射和spring整合之查询缓存(5)
  • 原文地址:https://www.cnblogs.com/jin-yuana/p/10025762.html
Copyright © 2011-2022 走看看