map
处理序列中的每个元素,得到一个列表,该列表和元素个数与元列表一样
map逻辑实现
def map_test(func, seq):
res = []
for i in seq:
r = func(i)
res.append(r)
return res
print(map_test(lamabda x:x*2, [1,2]))
[2, 4]
返回内存地址,迭代对象
print(map(lamabda x:x*2, [1,2]))
In [32]: data = map(lambda x
In [33]: print(list(data))
[1, 4]
In [34]: print(list(data))```
[]
若想持久化则
In [38]: data = list(map(lambda x:x**2, [1,2]))
In [39]: print(data)
[1, 4]
filter
遍历序列中的每个元素,判断每个元素的布尔值,若为True则留下来
filter逻辑实现
def filter_test(func, seq):
res = []
for i in req:
if func(i):
res.append(i)
return res
reduce 将所有序列数值,合并至一个值
import functools import reduce
逻辑代码
def reduce_test(func, seq, init=None]):
if initial == None:
res = seq.pop(0)
else:
res = init
for i in seq:
res = func(res, num)
return res