十一、Python——匿名函数

文章介绍了Python中的匿名函数lambda的使用,包括其简化函数定义、特点和示例。通过例子展示了lambda如何实现求和、作为参数、与map、reduce、filter及sorted函数结合进行数据处理的操作,强调了在适当情况下使用匿名函数的效率优势。
摘要由CSDN通过智能技术生成

1.匿名函数:简化函数定义

2.格式

  • lambda 参数1,参数2…:运算

3.匿名函数特点

  • 不需要指明函数名
  • 定义只有一条语句
  • 函数体必须是一个表达式
  • 不能显示使用return

4.匿名函数实现求和

s = lambda a,b:a + b
result = s(1,2)
print(result)  # 3

5.匿名函数作为参数

  • 第一个参数为函数对象
  • 另外两个参数为调用该函数所需的参数
  • 函数体则是调用第一个参数的函数对象
def foo(func,n,m)
	return func(n,m)

# 调用
foo(lambda n,m:n+m,2,3)  # 计算两个数相加

注意:通常只会把仅使用一次的函数定义为匿名函数,除非明确知道为什么使用匿名函数

  • 利用map函数对列表中的奇数实现+1.偶数不变
list1 = [1,2,3,4,5,6]
result = map(lambda x:x if x % 2 == 0 else x +1,list1)
print(list(result))  # [2,2,4,4,6,6]

# 上述代码等价于下面代码
for index,i in enumerate(list1):
	if i % 2 != 0
		list1[index] = i + 1
print(list1)
  • 利用reduce函数对元组中元素进行加减乘除运算
from functools import reeduce
tuple1 = (1,3,5,7)
result1 = reduce(lambda x,y:x + y,tuple1)
print(result1) # 16
result2 = reduce(lambda x,y:x + y,tuple1,11)
print(result2) # 27
  • filter函数:过滤
list1 = [2,7,11,46]
result = filter(lambda x : x > 10,list1)
print(list(result)) # [11,46]
  • sorted函数对年龄进行排序
students = sorted(students,key = lambda x : x['age'])   # 类型为字典
print(students)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值