python之lambda使用场景、回收机制、应用示例

本文详细介绍了Python中的lambda函数,包括其与普通函数的区别、基本语法、应用场景及如何在函数式编程中使用lambda函数进行map、reduce、filter、sorted等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、匿名函数与有名函数区别

匿名函数(lambda函数): 在Python中,lambda函数是一种简洁的、在定义时不需要命名的小型函数。
通常,lambda函数都非常简单,只有一行代码。
由于lambda函数在定义后立即被调用,并且通常只被调用一次,所以在调用完之后它就会被垃圾回收机制回收。
因此,lambda函数不适合用于需要反复调用的场景。

匿名函数:造出是内存地址,且内存地址没有绑定任何名字(引用计数为0),意味匿名函数被定义完之后(调用完成一次),立马会被当作垃圾回收掉
有名函数(普通函数): 需要重复调用、使用 def关

lambda函数: 轻量级函数
lambda格式: lambda 参数:式子
二、简单例子
def  add(a, b=1):
	return a+b
print(add(a+b))

add = lambda a, b =1: a+b
	:前跟 a, b 为匿名函数的参数
	:后跟函数体
def func(a, b):
    return a + b

func = lambda a, b : a + b

result = func(22, 88)
print(result)
三、简单用法
3.1使用if条件
利用三项表达式
get_add_even = lambda x: 'even' if x % 2 == 0 else 'odd'

print(get_add_even(8))      even
print(get_add_even(9))      odd
3.2 使用无参数表达式
import random
ran_lambda = lambda: random.random()
print(ran_lambda())

0.6362529555982697
3.3 lambda在函数式编程中应用

map、reduce、filter、sorted等函数都支持函数作为参数
lambda函数就可以应用在函数式编程中

 func( 1, 2 lamdba m, n:  m + n )
li = [
    {'name':'zhouyu', 'age':18},
    {'name': 'huangzhong', 'age': 60},
    {'name': 'guanyu', 'age': 21},
    {'name': 'mateng', 'age': 27},
    {'name': 'liubie', 'age': 36}
]

li.sort(key=lambda x:x['name']) #按照名字排序
li.sort(key=lambda x:x['age'])	#按照年龄排序

字典中排序与筛选元素

dic = {'a': 1, 'd': 2, 'g': 3, 'f': 8,  'c': 6 }
dic2 = sorted(dic.items(), key=lambda x: x[1])     # 按照value排序
dic = {x :  randint(60, 100)  for x  in range(1, 3)}          # 字典中筛选元素
dic2 =  {k: v for k, v in dic.iteritems() if v > 89 }    #  iter  迭代

print(dic)     {1: 90, 2:75, 3: 89}
print(dic2)	   {1:90, 3:89}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风华浪浪

讨个老婆本呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值