匿名函数 lambda

1. 匿名函数的作用

为了解决那些功能很简单的需求而设计的一句话函数

2. 语法格式

# 函数名:lambda 参数:返回值
    # 参数可以有多个,用逗号隔开
    # 匿名函数不管逻辑多负责,都只能写一行;且逻辑执行结束后的内容就是返回值
    # 返回值和正常函数一样,可以是任意数据类型

3. 匿名函数实例

实例1

# 1.普通定义函数
def calc(n):
    return n * n
print(calc(10)) # 100

# 2.换成匿名函数
calc2 = lambda n: n * n
print(calc2(10)) # 100


# 3.多参数函数
def add2(x,y):
    return x+y
print(add2(3,5)) # 8

# 4.多个参数,逗号隔开
add2 = lambda x,y:x+y
print(add2(3,5))    # 8

实例2
先了解一下max/min函数

def max(*args, key=None): # known special case of max
    """
    max(iterable, *[, default=obj, key=func]) -> value
    max(arg1, arg2, *args, *[, key=func]) -> value
    
    With a single iterable argument, return its biggest item. The
    default keyword-only argument specifies an object to return if
    the provided iterable is empty.
    With two or more arguments, return the largest argument.
    """
    pass

以max函数为例,可知max函数其实还是有个key参数的,默认情况下为空

  • 当key参数为空时:默认取列表中最大值,而字典则是默认取得最大的健key
  • 当key参数不为空时,就以key的函数对象为判断的标准
# 1.列表
l=[3,2,100,999,213,1111,-31121,333]

# 1.1 获取列表l中最大的值
print(max(l))   # 1111
# 1.2 获取列表l中绝对值最大的值
print(max(l,key=lambda x:abs(x)))   # -31121


# 2.字典
dic={'k1':10,'k2':100,'k3':30}

# 2.1 默认获取dic的最大key
print(max(dic)) # k3
# 通过lambda函数赋值key参数,获取dic的最大value
print(dic[max(dic,key=lambda k:dic[k])])    # 100

# 2.2 获取dic的最小key
print(min(dic)) # k1
# 2.3 获取dic的最小value
print(dic[min(dic,key=lambda k:dic[k])]) # 10




# 3. 现有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

t1 = (('a'),('b'))
t2 = (('c'),('d'))

# 3.1 答案一
test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)]
print(test(t1,t2))
# 3.2 答案二
print(list(map(lambda t:{t[0]:t[1]},zip(t1,t2))))
# 3.3 还可以这样写
print([{i:j} for i,j in zip(t1,t2)])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值