python3 匿名函数 lambda

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 -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。

返回值

返回表达式计算结果。

猜你喜欢

转载自blog.csdn.net/weixin_38280090/article/details/85713019