您的位置: 网站首页> python基础> 当前文章

python的lambda表达式(匿名函数)用法

老董-我爱我家房产SEO2019-09-15174围观,140赞

  用lambda关键字能创建匿名函数。这种函数省略了用def声明函数的标准步骤。

  lambda函数的语法只包含一个语句,如下:

	  lambda [arg1 [,arg2,.....argn]]:expression

# -*- coding: utf-8 -*-

sum = lambda arg1, arg2: arg1 + arg2

print(sum(1,2))
print(sum(10,20))
D:python3installpython.exe D:/pyscript/py3script/python66/python66.py
3
30

Process finished with exit code 0


  1、Lambda函数能接收任何数量的参数但只能返回一个表达式的值。

  2、匿名函数不能直接调用print,因为lambda需要一个表达式。

  3、Python要求 lambda 表达式只能是单行表达式。

  应用:函数作为参数传递

  1、作为自定义函数的参数

# -*- coding: utf-8 -*-


def fun(m, n, my_fun):
    return my_fun(m,n)


res = fun(1,2,lambda x,y:x+y)
print(res)

res = fun(10,20,lambda x,y:x+y)
print(res)
D:python3installpython.exe D:/pyscript/py3script/python66/python66.py
3
30

Process finished with exit code 0


  2、作为内置函数的参数(参考 sort函数和sorted函数)

# -*- coding: utf-8 -*-

stu = [
    {"name":"a1", "age":18},
    {"name":"b1", "age":19},
    {"name":"c1", "age":17}
]

# 按照name排序
stu.sort(key = lambda x:x['name'])
print(stu)

# 按照age排序
stu.sort(key = lambda x:x['age'])
print(stu)
D:python3installpython.exe D:/pyscript/py3script/python66/python66.py
[{'name': 'a1', 'age': 18}, {'name': 'b1', 'age': 19}, {'name': 'c1', 'age': 17}]
[{'name': 'c1', 'age': 17}, {'name': 'a1', 'age': 18}, {'name': 'b1', 'age': 19}]

Process finished with exit code 0


很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会

文章评论

    python的lambda表达式(匿名函数)用法文章写得不错,值得赞赏

站点信息

  • 网站程序:Laravel
  • 客服微信:a772483200