función anónima
Con la capacidad de crear una función lambda anónima, esta función toma su nombre omitido por procedimientos estándar def declaración de la función.
gramática
lambda [arg1 [,arg2,.....argn]]:expression
Modo de empleo
- Cuando definimos una función normal como esto
def add(a,b):
return a+b
- El uso de lambda definir una función anónima como esto
add = lambda a,b:a+b # 和上面函数功能一样
Puede llamar a la manera normal. expresión lambda puede recibir cualquier número de parámetros, pero sólo un valor de retorno de la expresión.
uso
1 como el código de seguridad puede ser simplificado descrito
2. función anónima pasa como un parámetro
- Como una costumbre se pasan los parámetros de función
def test(a, b, func):
result = func(a, b)
print(result)
func_new = input("请输入一个匿名函数:")
# eval()将字符串str当成有效的表达式来求值并返回计算结果。
func_new = eval(func_new)
test(11, 22, func_new)
"""
输出结果:
请输入一个匿名函数:lambda a,b:a+b
33
"""
- Las funciones integradas se pasan como parámetros
, por ejemplo: una lista de diccionario ordenados según las palabras clave especificadas
stus = [
{"name":"zhangsan", "age":18},
{"name":"lisi", "age":19},
{"name":"wangwu", "age":17}
]
stus.sort(key = lambda x:x['age'])
for stu in stus:
print(stu)
"""
输出结果:
{'name': 'wangwu', 'age': 17}
{'name': 'zhangsan', 'age': 18}
{'name': 'lisi', 'age': 19}
"""