python匿名函数lambda

一、概念
python用lambda创建匿名函数,顾名思义就是他是一个函数但是没有名字
lambda只是一个表达式,函数体比def简单很多;
二、语法
语法是唯一的,只有一种写法: lambda argument_list: expression
lambda是python的预留字,argument_list是参数列表,expression是表达式
lambda只会访问参数列表中的参数
三、特性
1、函数是匿名的就是没有名字
2、函数有输入输出,输入就是参数列表中的参数,输出是expression表达式输出的值
3、函数功能简单,因为就包含一个表达式,所以无法实现复杂的逻辑
四、用法
1、将函数赋值给变量,从而调用函数:

sum=lambda arg1,arg2:arg1+gra2
sum(1,2) 输出3
sum(2,3) 输出5

2、将lambda作为参数传递给其他函数:
部分python内置函数可以接收函数作为参数,比如以下几类:

Ⅰ、filter 函数:过滤掉不符合条件的元素,返回由符合条件元素组成的迭代器对象,如果要抓变成列表,需要用list。
语法:filter(function, iterable) function指函数,iterable指待过滤序列

lambda函数作为参数传递给filter
tmplist = filter(lambda x:x%3==0,[1,2,3,4,5,6,7,8,9])
new_list=list(tmplist)
print(new_list) 
#lambda过滤能被3整除的数,返回一个[3,6,9]

Ⅱ、sorted函数:sort用于list,sorted可以对所有可迭代的对象进行排序;sorted返回一个新的列表,sort会将原有的列表修改;
语法:sorted(iterable, key=None, reverse=False) iterable:可迭代对象,key来自于可迭代对象中用于排序,reverse排序规则,reverse = True 降序 , reverse = False 升序(默认)

example_list = [5, 0, 6, 1, 2, 7, 3, 4]
>>> result_list = sorted(example_list, key=lambda x: x*-1) 按照降序的方式排列
>>> print(result_list)
[7, 6, 5, 4, 3, 2, 1, 0]
也可写作:
>>>example_list = [5, 0, 6, 1, 2, 7, 3, 4]
>>> sorted(example_list, reverse=True)
[7, 6, 5, 4, 3, 2, 1, 0]

Ⅲ、map函数:map函数会根据提供的函数对指定序列映射,
语法:map(function, iterable, …)
参数 function 是序列中的每一个元素都要调用的 function 函数,返回包含每次 function 函数返回值的新列表。python3返回的是迭代器

example_list = [5, 0, 6, 1, 2, 7, 3, 4]
new_list=map(lambda x:x+1,example_list)
re_list=list(new_list) #将迭代器对象转变成列表
print(re_list)
# 提供了两个列表,对相同位置的列表数据进行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

测试运维小猴子

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值