• 关于 reduce 和 map


    一  reduce() 函数 是python 的 模块的内容,是关于累 的 计算

      在调用的时候先导入reduce模块

      reduce() 接收的参数有两个,reduce(function,sequence)

      reduce() 对 sequence (序列) 中的每一个元素反复调用function,并返回最终结果

    from functools import reduce
    
    def func(a,b):
        return a+ b
    ret = reduce(func,[1,2,3,4,5])
    print(ret)
    
    ret = reduce(lambda x ,y:x+y,[1,2,3,4,5]) print(ret) 

    s = sum([1,2,3,4,5])
    print(s)

    # 结果是  15

       上述计算实际上是对 list 的所有元素求和,虽然 python 内置了求和函数 sum,

      但是利用 reduce()也很简单

      reduce() 还可以接受第3个参数,作为计算的初始值,如果把初始值设置成100,计算:

    from functools import reduce
    
    def func(a,b):
        return a+ b
    
    ret = reduce(func,[1,2,3,4,5],100)
    print(ret)
    
    
    # 结果就是   115

    二 map()函数 是 python 内置的高阶函数,map(func,iter1)

      它接收一个函数func 和 一个 list,并通过把函数func 依次作用在 list 的每一个元素上

      得到一个新的list 并返回

       例如: 对于list[1,2,3,4,5,6,7,8,9]

      如果 希望把 list 的每一个元素都作 平方,就可以用函数 map()

     

       因此,我们只需要传入 函数 f(x) = x * x ,就可以利用 map()函数完成这个计算

    lst = [1,2,3,4,5,6,7,8,9]
    
    # 1.可以用函数方法实现
    
    def func(x):
        return x * x
    
    ret = list(map(func,lst))
    print(ret)
    
    # 2.可以用 lambda 函数实现
    ret = list(map(lambda x:x**2,lst))
    print(ret)
    
    
    #3. for 循环也可以做到
    lst_new = []
    for i in lst:
        lst_new.append(i *i)
    print(lst_new)


    # 输出结果清一色的: [1, 4, 9, 16, 25, 36, 49, 64, 81]

       注意: map() 函数不改变原有的list,而是返回一个新的 list 

          利用 map()函数,可以把一个 list 转换为 另外一个 list,只需要传入转换函数

    由于 list 包含的元素可以是 任何类型,因此,map() 不仅仅可以处理只包含数值的list

    事实上它可以处理包含任意类型的list,只需要传入的 func 可以处理这类数据类型

  • 相关阅读:
    推荐系统多样性指标衡量
    deepfm代码参考
    tf多值离散embedding方法
    样本加权
    tensorflow 分布式搭建
    优化器
    协同过滤代码
    NLP
    双线性ffm
    各种总结
  • 原文地址:https://www.cnblogs.com/wenqi2121/p/10388458.html
Copyright © 2020-2023  润新知