练手Py map、reduce函数

55 阅读1分钟

因为这两函数只能对可迭代数组进行操作,所以传入的参数需要做判断,依赖这个库:

from collections.abc import Iterable

它们的共同点: 从 可迭代数组 中输出需要给 操作函数 的参数

map:只需要从数组中获取单个值

reduce:需要获取两个:

    1、第一个初始化为数组首个值,以及 更新为操作后的结果

    2、第二个从数组索引 1 开始到索引结束

map:

def myMap(func, array):
    if isinstance(array, Iterable):
        return [func(i) for i in array]
    else:
        raise TypeError("错了错了")

reduce:

def myReduce(func, array):
    if isinstance(array, Iterable):
        initNum = array[0]
        for i in range(len(array) - 1):
            initNum = func(initNum, array[i + 1])
        return initNum
    else:
        raise TypeError("错了错了")