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

    Python编程 wuya 36次浏览 已收录 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 -高级函数(map-filter-reduce)
    喜欢 (0)
    发表我的评论
    取消评论
    表情 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址