python -高级函数(map-filter-reduce)

ernestwang 796 0

高级函数

  • map
    • 功能及参数
    参数:
        func:一个函数
        iter1:一个可迭代对象
    功能:使用func函数依次作用域iter1中的每个元素,返回一个迭代器
    • 示例:
    from collections import Iterator
    lt = [1, 2, 3, 4, 5]
    
    m = map(lambda x: x*x, lt)
    
    print(m)
    # 结果是map对象,是一个迭代器
    print(isinstance(m, Iterator))
    
    for i in m:
        print(i)
  • filter
    • 功能及参数
    参数:
        function:一个函数
        iterable:一个可迭代对象
    功能:
    使用function函数依次作用于iterable中的每个元素,返回的迭代器中会保留处理结果为真的数据
    • 示例:
    from collections import Iterator
    
    lt = [1, 2, 3, 4, 5]
    f = filter(lambda x: x % 2 == 0, lt)
    
    print(f)
    # 返回一个迭代器,保留处理结果为True的元素
    print(isinstance(f, Iterator))
    
    for i in f:
        print(i)
  • reduce
    • 功能及参数
    参数:
        function:一个函数
        sequeue:一个序列
    功能
        首先从序列中提取两个元素,使用function函数处理,处理完的结果与下一个元素再次使用function函数处理,依次递归进行下去,直到序列结束,最后返回处理完的结果。
    • 示例:
    from functools import reduce
    
    lt = [1, 2, 3, 4, 5]
    
    # result = reduce(lambda x, y: x+y, lt)
    result = reduce(lambda x, y: 10*x+y, lt)
    
    print(result)

练习

  • 使用map函数解决
    • 将一个元素全是字符串的列表进行处理,去掉字符串前后的空白,将字符串的首字母大写
  • 使用filter函数解决
    • 对于一个列表进行处理,列表中什么元素都有,保留长度大于3的字符串
  • 使用reduce函数解决
    • 求一个列表中所有元素的乘积,列表元素全是整数
  • 使用递归,完成传入n,返回:1! + 2! + ... + n!
  • 歌词解析:解析成一个时间戳对应一句歌词的形式,封装函数(根据时间返回歌词)

标签: python

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~

复制成功
微信号: irenyuwang
关注微信公众号,站长免费提供流量增长方案。
我知道了