匿名函数lambda

"""
lambda 函数的语法只包含一个语句,表现形式如下:

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

其中,lambda 是 Python 预留的关键字,[arg…] 和 expression 由用户自定义。
具体介绍如下:
[arg…] 是参数列表,它的结构与 Python 中函数(function)的参数列表是一样的。
[arg…] 可以有非常多的形式。
expression 是一个参数表达式,表达式中出现的参数需要在[arg......]中有定义,并且表达式只能是单行的,只能有一个表达式。

lambda 特性
lambda 函数是匿名的:
所谓匿名函数,通俗地说就是没有名字的函数。lambda函数没有名字。
lambda 函数有输入和输出:
输入是传入到参数列表argument_list的值,输出是根据表达式expression计算得到的值。
lambda 函数拥有自己的命名空间:
不能访问自己参数列表之外或全局命名空间里的参数,只能完成非常简单的功能。
"""
# lambda常见用法


# 1.将lambda函数赋值给一个变量,通过这个变量间接调用该lambda函数。
add = lambda x, y: x + y
add(1, 2)

# 2.将lambda函数赋值给其他函数,从而将其他函数用该lambda函数替换。
# 为了把标准库time中的函数sleep的功能屏蔽(Mock),我们可以在程序初始化时调用:
import time
time.sleep = lambda x: None
# 这样,在后续代码中调用time库的sleep函数将不会执行原有的功能。
# 例如:
time.sleep(3)

# 程序不会休眠 3 秒钟,而是因为lambda输出为None,所以这里结果是什么都不做


# 3.lambda高阶用法
# 将lambda函数作为参数传递给其他函数。
# ===========一般写法:===========
# 1、计算平方数
def square(x):
    return x ** 2


map(square, [1, 2, 3, 4, 5])  # 计算列表各个元素的平方
# 结果:
# [1, 4, 9, 16, 25]

# ===========匿名函数写法:============
# 2、计算平方数,lambda 写法
map(lambda x: x ** 2, [1, 2, 3, 4, 5])
# 结果:
# [1, 4, 9, 16, 25]

# 3、提供两个列表,将其相同索引位置的列表元素进行相加
map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
# 结果:
# [3, 7, 11, 15, 19]

"""
MAXIMUM = lambda x,y :  (x > y) * x + (x < y) * y
MINIMUM = lambda x,y :  (x > y) * y + (x < y) * x
 
if __name__ == '__main__':
    a = 10
    b = 20
    print ('The largar one is %d' % MAXIMUM(a,b))
    print ('The lower one is %d' % MINIMUM(a,b))
以上实例输出结果为:

The largar one is 20
The lower one is 10
"""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值