可以接受一个函数作为参数的函数叫做高阶函数。
map()
map()函数接受一个函数参数,一个惰性序列(Iterator)参数,将惰性序列里的每个值作用于函数参数后,返回新的惰性序列。
def f(x):
return x*2
m = map(f, [1, 3, 6, 9])
print(m) ----------------------> [2, 6, 12, 18]
reduce()
reduce()函数同map()函数一样也接受两个参数,不同的是一个是函数参数,一个是序列参数(list)。而且其函数参数要接受两个参数,将函数参数求得的值继续和序列参数中下一个元素做累积计算。
def f(x, y):
return x*2+y
m = reduce(f, [1, 3, 6, 9])
print(m) ----------------------> 41
filter()
filter()是用于过滤序列的高阶函数,其参数和map()相同,是否保留序列的元素取决于作用于序列元素的函数返回值是True还是False。filter()返回值是一个惰性序列。
def f(x):
return x % 2 == 0
m = filter(f, [1, 3, 6, 9, 12])
print(m) ----------------------> [6, 12]
sorted()
sorted()是排序高阶函数,可以传入一个序列,一个key值(定义按何种方式排序),以及reverse=True/False是否反向
L = sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.upper, reverse=True)
print(L) ----------------------> ['Zoo', 'Credit', 'bob', 'about']
网友评论