Python map()函数及lambda匿名函数详解

lambda匿名函数

lambda匿名函数的使用规则一般是

lambda 参数:返回值

lambda匿名函数存于内存中,若要执行,可以选择赋值,然后通过()执行

第二种执行方式为将lambda表达式用()括起然后接()放入参数

需要注意,lambda函数的返回值只能为单一值,不能做for循环或if判断之类的写法

赋值后执行
fuc1 = lambda x : x**2
print(fuc1)
print(fuc1(2))
# <function <lambda> at 0x100bda2a0>
# 4
直接执行 
print((lambda x: x ** 2)(2))
# 4

 

可以看到直接打印fuc1输出的为匿名函数所在的内存地址,通过()执行,会执行该内存地址的代码

函数演示
lambda接受不定长参数演示
fuc1 = lambda *args : print(args)
fuc1([1,2,3])
fuc2 = lambda **kwargs : print(kwargs)
fuc2(name='Jack',gender='male')
# ([1, 2, 3],)
# {'name': 'Jack', 'gender': 'male'}
lambda返回三目运算符演示

虽然lambda函数返回值不支持if判断,但是可以使用三目运算符作为返回值,因为三目运算符会被视为一个整体

print((lambda x: x if x>1 else 1)(2))
print((lambda x: x if x>1 else 1)(0))
# 2
# 1

map()函数

map()函数用于将一个可迭代容器进行迭代,每次将一个值送入一个函数进行执行

参数有两个,第一个为函数名,第二个为可迭代对象

返回值为一个可迭代的map对象

def More_than_one(x):
    if x>1:
        return True
    else:
        return False

list1 = [-1,0,1,2]
map1 = map(More_than_one, list1)
print(map1)
print(list(map1))

# <map object at 0x139e444c0>
# [False, False, False, True]

上述使用的是用传统函数作为参数,用于迭代判断可迭代对象中的元素是否大于一,同样的功能也可将传统函数换为lambda匿名函数

list1 = [-1,0,1,2]
map1 = map(lambda x : True if x >1 else False, list1)
print(map1)
print(list(map1))


# <map object at 0x16bd080d0>
# [False, False, False, True]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值