本文实例讲述了python匿名函数及应用。分享给大家供大家参考,具体如下:
lambda关键词能创建?型匿名函数。这种函数得名于省略了def声明函数的标准步骤。
代码如下:
1
2
3
4
5
|
#定义lambda函数
sum = lambda arg1,arg2:arg1 + arg2
#调用函数
totle = sum ( 3 , 5 )
print ( 'totle = %d' % totle)
|
运行如下
totle = 8
lambda函数能接收任何数量的参数但只能返回一个表达式的值
匿名函数不能直接调用print,因为lambda需要一个表达式.
应用场景:函数作为参数传递
1. 自定义函数
1
2
3
4
5
6
7
|
#定义函数
def myfunc(num1,num2,option):
print ( 'num1 = %d' % num1)
print ( 'num2 = %d' % num2)
print ( 'num1 + num2 = %d' % option(num1,num2))
#调用函数
myfunc( 3 , 5 , lambda x,y:x + y)
|
运行如下:
num1 = 3
num2 = 5
num1 + num2 = 8
2. 作为内置函数的参数
1
2
3
4
5
6
7
8
9
10
11
|
#coding=utf-8
#定义一个列表,列表中的元素是字典
stus = [{ 'name' : 'xiaoming' , 'age' : 18 },
{ 'name' : 'xiaohong' , 'age' : 19 },
{ 'name' : 'xiaoxue' , 'age' : 17 }]
#实现列表中的元素按name排序
stus.sort(key = lambda x:x[ 'name' ])
print ( '列表中的元素按name排序:' , stus)
#实现列表中的元素按age排序
stus.sort(key = lambda x:x[ 'age' ])
print ( '列表中的元素按age排序:' , stus)
|
运行结果如下:
列表中的元素按name排序:
[{'name': 'xiaohong', 'age': 19},
{'name': 'xiaoming', 'age': 18},
{'name': 'xiaoxue', 'age': 17}]
列表中的元素按age排序:
[{'name': 'xiaoxue', 'age': 17},
{'name': 'xiaoming', 'age': 18},
{'name': 'xiaohong', 'age': 19}]
希望本文所述对大家python程序设计有所帮助。
原文链接:https://blog.csdn.net/xuezhangjun0121/article/details/76945344