高阶函数
一、map
map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素上,并把结果作为新的list返回。
如:
二、reduce
reduce把一个函数作用在一个序列[x1,x2,x3…]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算。
例如:
例子:
将字符串转换为整型
三、filter
filter()也接收一个函数和一个序列,和map()不同,filter()把传入的函数依次作用于每个元素,然后根据返回值是True,还是False决定保留还是丢弃该元素。
例如,在list中,删除偶数,只保留奇数。
def isOdd(n)
return n%2==1
filter(isOdd,[1,2,3,4,5,6,7,8])
#结果:[1,3,5,7]
四、排序算法
sorted()函数可以对list进行排序,从小到大排序。也可以定义一个reversed_cmp函数
def reversed_cmp(x,y)
if x>y:
return -1
if x<y:
return 1
return 0
传入自定义的比较函数reversed_cmp,就可以实现倒序排序。