map、filter、reduce函数

map主要用于对可迭代对象进行简单处理获取一个新的符合需求的数据,查看以下示例:

"""
    map(方法逻辑处理,可迭代对象)
    returns 方法内存地址
    list 填充处理结果
   列表每个元素值加1
""" def main(): nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(map(lambda n: n + 1, nums)) print(list(map(lambda n: n + 1, nums))) if __name__ == '__main__': main()

返回结果:

  <map object at 0x000001CBC6F160F0>
  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

filter主要对可迭代对象进行过滤操作返回符合某一个或者多个条件的数据,查看以下示例:

"""
    filter(方法逻辑处理,可迭代对象)
    returns 方法内存地址
    list 填充处理结果
  查找列表中奇数
""" def main(): nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(filter(lambda n: not n % 2 == 0, nums)) print(list(filter(lambda n: not n % 2 == 0, nums))) if __name__ == '__main__': main()

返回结果:

  <filter object at 0x000001BC4FB160F0>
  [1, 3, 5, 7, 9]

reduce对迭代器的对象进行合并处理,注意要导入from functools import reduce

"""
    reduce(方法逻辑处理,可迭代对象, 初始值 default None)
    returns 处理结果
    求和
"""
from functools import reduce


def main():
    nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    print(reduce(lambda x, y: x+y, nums))
    print(reduce(lambda x, y: x+y, nums, 1))


if __name__ == '__main__':
    main()

返回结果,reduce可以传入一个初始值:

  45

  46 

原文地址:https://www.cnblogs.com/louiszh/p/12295222.html