匿名函数
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()