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()

 

posted @ 2020-11-05 21:08  Piero_M  阅读(130)  评论(0编辑  收藏  举报