lambda
没有名字的函数,不用写return
,返回值就是该表达式的结果。
语法:lambda 参数:方法(或三元运算)
lambda x:x*x等同于
def f(x):
return x * x
1,用法举例:对一个元组的字典进行排序
list1 = [{"name": "haha", "age": "11"}, {"name": "hehe", "age": "12"}, {"name": "xixi", "age": "13"}]
list1.sort(key=lambda x: x['name'])
print(list1)
2,lambda 与map
list1 = [1, 2, 3, 4]
map((lambda x : x+1), list1)
print(list1)
#/usr/local/bin/python3.7 /Users/hpb/Desktop/python/test/lambda.py
#[1, 2, 3, 4]
#Process finished with exit code 0
关于map
map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
3,把匿名函数当做一个变量来使用
functi = input("请输入一个匿名函数:")
fun = eval(functi)
def test(a, b, fun):
result = fun(a,b)
return result
print(test(11,22,fun))
关于eval()
描述
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
语法
以下是 eval() 方法的语法:
eval(expression[, globals[, locals]])参数
- expression -- 表达式。
- globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
- locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
返回值
返回表达式计算结果。