• python_匿名函数_lambda的使用


    匿名函数
    1、用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。
    2、lambda可以获取到字典中的key 用于列表(中的元素为字典类型)的排序
    3、lambda作为参数传给函数
    4、lambda作为输入,传给函数,根据输入自定义 计算方法                  #input默认类型是string 需要用eval将strings转为Python expression
     
    示例代码如下:

    In [45]: mi = lambda a,b : a**b
    
    In [46]: type(mi)
    Out[46]: function
    
    In [47]: mi(2,3)
    Out[47]: 8
    In [26]: list_tuple
    Out[26]: [{'name': 'maojie', 'age': 18}, {'name': 'piero', 'age': 10}]
    
    In [27]: list_tuple.sort(key = lambda x:x['age'])
    
    In [28]: list_tuple
    Out[28]: [{'name': 'piero', 'age': 10}, {'name': 'maojie', 'age': 18}]
    
    In [29]: list_tuple.sort(key = lambda x:x['name'])
    
    In [30]: list_tuple
    Out[30]: [{'name': 'maojie', 'age': 18}, {'name': 'piero', 'age': 10}]
    #!/bin/python
    
    #根据传参输出结果
    def _result(a,b,fun):
            _sum = fun(a,b)
            print(_sum)
    
    #使用匿名函数 定义输入和计算规则
    def _calc():
            a1=int(input("请输入第一个数:"))
            b1=int(input("请输入第二个数:"))
            _result(a1,b1,lambda x,y:x+y)
    
    
    _calc()
    
    [root@piero py]# python lambda.py 
    请输入第一个数:3
    请输入第二个数:2
    5
    [root@piero py]# python lambda_input.py 
    请输入第一个数:3
    请输入第二个数:2
    请输入lambda公式:lambda x,y:x+y+100
    105
    
    [root@piero py]# cat lambda_input.py 
    #!/bin/python
    def _result(a,b,fun):
        _sum = fun(a,b)
        print(_sum)
    
    def _calc():
        a1 = int(input("请输入第一个数:"))
        b1 = int(input("请输入第二个数:"))
        fun = (input("请输入lambda公式:"))
        fun = eval(fun)
        _result(a1,b1,fun)
    
    _calc()
  • 相关阅读:
    C 运算符, 有符号数据运算,
    P1337 [JSOI2004]平衡点 / 吊打XXX 模拟退火
    [POI2011]Garbage 欧拉回路
    # bzoj2215: [Poi2011]Conspiracy 2-sat
    hdu1814 Peaceful Commission 2-sat
    2-sat相关复习
    #2718. 「NOI2018」归程 kruskal重构树
    JXOI2018守卫 区间DP
    [NOI1995]石子合并 四边形不等式优化
    3900: 交换茸角
  • 原文地址:https://www.cnblogs.com/piero-mao/p/13933982.html
Copyright © 2020-2023  润新知