码迷,mamicode.com
首页 > 编程语言 > 详细

python lambda简单介绍

时间:2017-09-02 23:19:11      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:设置   返回   int   [1]   不能   赋值   表达   test   直接   

python lambda

在python中,如果想要创建函数需要使用关键字def,而如果想要创建匿名函数,就需要使用lambda。

lambda创建的函数和def创建的函数有什么区别?

  1. def创建的函数是有名称的,而lambda没有
  2. lambda会创建一个函数的对象,但是却不会把对象给一个标识符,而def 会把函数对象赋值给一个变量
  3. def 是一条语句,而lambda它只是一个表达式

    y = lambda x:print(x)
    y(10) # 10

例如上面,通过lambda创建了一个表达式,x相当于形参,代码整体来看非常的简单高效。

通常情况下,lambda 可以直接作为列表或者字典的成员,如下:

# 创建一个列表,将通过表达式lambda创建的表达式当做列表中的元素
list_test = [lambda a:a*3,lambda b:b*4]
# 给列表中设置值
x = list_test[0](3)
y = list_test[1](2)
print(x,y) # 9 8 

那么相同的操作,在列表中,只能够使用lambda,没有办法使用def替代,因为def是语句,在列表中只能够是表达式。而lambda表达式在“:”之后只能有一个表达式,通常情况下,return语句能够返回的可以放在lambda后面,不能够返回的同样也不能够放在其后。因此,最好不要将if或者for这样的语句放在lambda表达式的后面,lambda最好只用来定义一些简单的函数。

python lambda简单介绍

标签:设置   返回   int   [1]   不能   赋值   表达   test   直接   

原文地址:http://www.cnblogs.com/yujihaia/p/7468228.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!