- 高阶函数
接收函数作为参数,或者将函数作为返回值的函数是高阶函数
当我们使用一个函数作为参数时,实际上是将指定的代码传递进了目标函数
- filter()
filter()可以从序列中过滤出符合条件的元素,保存到一个新的序列中
- 参数:
1.函数,根据该函数来过滤序列(可迭代的结构)
2.需要过滤的序列(可迭代的结构)
- 返回值:
过滤后的新序列(可迭代的结构)
l = [1,2,3,4,5,6,7,8,9,10]
def fn4(i):
return i % 3 == 0
print(fn(fn4 , l))
- fn4是作为参数传递进filter()函数中
而fn4实际上只有一个作用,就是作为filter()的参数
filter()调用完毕以后,fn4就已经没用
- 匿名函数 lambda 函数表达式 (语法糖)
lambda函数表达式专门用来创建一些简单的函数,他是函数创建的又一种方式
- 语法:lambda 参数列表 : 返回值(lambda a,b : a + b)
匿名函数一般都是作为参数使用,其他地方一般不会使用
def fn5(a , b):
return a + b
lambda a,b : a + b
- map()
map()函数可以对对象中的所有元素做指定的操作,然后将其添加到一个新的对象中返回
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需要一个函数作为参数,当设置了函数作为参数
每次都会以列表中的一个元素作为参数来调用函数,并且使用函数的返回值来比较元素的大小
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()排序不会影响原来的对象,而是返回一个新对象