1、map
map()
函数接收两个参数,一个是函数,一个是Iterable
,map
将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator
返回
2、reduce
reduce
把一个函数作用在一个序列[x1, x2, x3, ...]
上,这个函数必须接收两个参数,reduce
把结果继续和序列的下一个元素做累积计算
3、filter
和map()
类似,filter()
也接收一个函数和一个序列。和map()
不同的是,filter()
把传入的函数依次作用于每个元素,然后根据返回值是True
还是False
决定保留还是丢弃该元素。
4、sorted
排序
直接撸代码:
from functools import reduce
def f(x):
return x * x
def func(x, y):
return x * 10 + y
def func2(x):
return x * 100
def is_odd(n):
return n % 2 == 1
def not_empty(s):
return s and s.strip()
# map 函数
r = list(map(f, range(10)))
print(r) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
r = list(map(lambda x: x * x + x, range(10)))
print(r) # [0, 2, 6, 12, 20, 30, 42, 56, 72, 90]
# reduce 函数
a = reduce(func, range(10))
print(a) # 123456789
a = reduce(func, map(func2, range(5)))
print(a) # 123400
# filter 函数
b = list(filter(is_odd, range(20)))
print(b) # [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
b = list(filter(not_empty, ['A', '', 'B', None, 'C', ' ']))
print(b) # ['A', 'B', 'C']
# sorted 函数
c = sorted([36, 5, -12, 9, -21], key=abs) # [5, 9, -12, -21, 36]