map,reduce,filter使用

2018-03-29  本文已影响0人  xhz的个人小屋

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
上一篇 下一篇

猜你喜欢

热点阅读