map
map(function, iterable…)
map对列表中的每一个元素都调用function函数进行处理,返回一个新的列表。
d = [1, 2, 3]
def func(s):
return s*100
print(map(func, d))
print(type(map(func, d)))
print(list(map(func, d)))
结果:
<map object at ......>
<class 'map'>
[100, 200, 300]
[注]:map可以处理多个可迭代对象,如果传入的可迭代对象长度不一致,则以最短的为基准处理。
reduce
functools.reduce(function, iterable, [initial_value])
[initial_value]为初始参数,可选
import functools
def add(x, y):
print("x = %d, y = %d" % (x, y))
return x+y
print(functools.reduce(add, [1, 2, 3, 4, 5]))
print(functools.reduce(add, [1, 2, 3, 4, 5], 8))
结果:
x = 1, y = 2
x = 3, y = 3
x = 6, y = 4
x = 10, y = 5
15
x = 8, y = 1
x = 9, y = 2
x = 11, y = 3
x = 14, y = 4
x = 18, y = 5
23
filter
filter(function, iterable)
对于iterable中的每一个元素都用function进行判断,返回满足条件的元素列表。
print(list(filter(lambda a: a % 2 == 0, range(20))))
结果:
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]