Python匿名函数-高阶函数 及其 - map - filter - sort - sorted使用

 lambda和def效果一样,但是lambda只能实现简单的操作

匿名函数 lambda 函数表达式 (语法糖)
 lambda函数表达式专门用来创建一些简单的函数,他是函数创建的又一种方式
 语法:lambda 参数列表 : 返回值
 匿名函数一般都是作为参数使用,其他地方一般不会使用

以下两个函数等价: 

def fn5(a , b):
    return a + b

fn6 = lambda a,b : a + b

 匿名函数的调用:

print((lambda a,b : a + b)(10,20))
#或
print(fn6(10,30))

 

filter()
filter()可以从序列中过滤出符合条件的元素,保存到一个新的序列中
参数:
 1.函数,根据该函数来过滤序列(可迭代的结构)
 2.需要过滤的序列(可迭代的结构)
返回值:
  过滤后的新序列(可迭代的结构)

 因此通过lamba可以当作函数对象来给filter的第一个参数

l = [1,2,3,4,5,6,7,8,9,10]
r = filter(lambda i : i > 5 , l)
print(list(r))

 

map()
map()函数可以依此对对象中的所有元素做指定的操作,然后将其添加到一个新的对象中返回

对L列表中的每个元素进行平方操作: map返回的是一个对象,想要查看具体信息的话需要在加list

l = [1,2,3,4,5,6,7,8,9,10]
r = map(lambda i : i ** 2 , l)
print(list(r))

 

sort()
该方法用来对列表中的元素进行排序
sort()方法默认是直接比较列表中的元素的大小
在sort()可以接收一个关键字参数 , key

  key需要一个函数作为参数,当设置了函数作为参数
  每次都会以列表中的一个元素作为参数来调用函数并且使用函数的返回值来比较元素的大小 

例如:在sort中指定了key=len,len()是一个获取长度的函数,那么sort就是按照元素的长短来比较大小

l = ['bb','aaaa','c','ddddddddd','fff']
l.sort(key=len)
l = [2,5,'1',3,'6','4']
l.sort(key=int)
print(l)

 

sorted()
这个函数和sort()的用法基本一致,但是sorted()可以对任意的序列进行排序
  并且使用sorted()排序不会影响原来的对象,而是返回一个新对象

l = [2,5,'1',3,'6','4']
# l = "123765816742634781"

print('排序前:',l)
print(sorted(l,key=int))
print('排序后:',l)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值