Python之匿名函数

1.匿名函数的定义

关键字:
lambda,冒号前面是形参 冒号后面是返回值

一般格式:
lambda 形参:返回值

(1).匿名函数实现序列的累加

# 导入reduce模块
from functools import reduce

# reduce函数:把结果继续和序列的下一个元素累计计算
print(reduce(lambda x,y:x+y,[1,2,3,4,5]))

在这里插入图片描述
(2).匿名函数实现序列的累次方

# 导入reduce模块
from functools import reduce

print(reduce(lambda x,y:x ** y,[2,2,2,2]))

在这里插入图片描述
(3).匿名函数实现序列的各项平方

# map函数:将传入的函数依次作用到序列的每个元素,并且把结果作为新的序列返回
# 由于返回值为对象,所以还需要用list强制转换为列表类型
print(list(map(lambda x:x ** 2,[1,2,3,4,5])))

在这里插入图片描述
(4).匿名函数求10的阶乘

# 导入reduce模块
from functools import reduce

print(reduce(lambda x,y:x*y,range(1,11)))

在这里插入图片描述
2.匿名函数的参数

(1).默认参数

f = lambda x,y=2:x ** y
print(f(3))
print(f(3,3))

在这里插入图片描述
(2).可变参数

f = lambda *args:sum(args)
print(f(5,6))
print(f(5,6,7))

在这里插入图片描述
(3).关键字参数

f = lambda **kwargs:kwargs.values()
print(f(name='fentiao',age=3))

在这里插入图片描述
3.匿名函数练习

需求:

用匿名函数实现:
   将给定的序列中所有的0移动到最后,其他元素位置均不变

代码:

# 定义列表
nums = [0,7,0,1,2,1,5,1,7,8,0,67,1,3,4]
print(nums)

# sorted(序列,key):按照key将序列排序
# lambda 形参:返回值, 匿名函数
# 仅当x为0时返回1,其他情况均为返回0
print(sorted(nums,key=lambda x:1 if x == 0 else 0))

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值