• map,reduce,filter


    map

    map(function,Iterable) map将传入的函数一次作用到序列的每个元素,并把结果作为新的 Iterator返回

      names = ['james','ooc','rose','green']

    方式一:手动实现

      new_names = []
    for name in names:
       new_names.append('steven ' + name)
    print(new_names)
    # ['steven james', 'steven ooc', 'steven rose', 'steven green']

    方式二:列表生成

      new_names = ['steven ' + name for name in names]
    print(new_names)
    # ['steven james', 'steven ooc', 'steven rose', 'steven green']

    方式三:map + 匿名函数

      lam_name = map(lambda x:'steven' + x , names)
    print(lam_name)
    print(list(lam_name))
    # ['steven james', 'steven ooc', 'steven rose', 'steven green']

    Reduce

    reduce(function,sequence) reduce把一个函数作用在一个序列[x1, x2, x3, …]上,reduce把结果继续和序列的下一个元素做累计计算

    方式一:手动实现

      num = 0
    for i in range(101):
    num += i
    print(num)
    # 5050

    方式二:列表生成式

      print(sum([i for i in range(101)]))
    # 5050

    方式三:reduce + 匿名函数

    在python3中 reduce要在functools中调用

      from functools import reduce
    print(reduce(lambda x,y:x+y,[i for i in range(101)],100))
    # 5150 reduce
    # 实际上 def reduce(function, sequence, initial=None) 有第三个参数# 初始值为none
    print(reduce(lambda x,y:x+y,[i for i in range(101)]))
    # 5050
    print(reduce(lambda x,y:x+y,['h','e','l','l','o'],'-------'))
    # -------hello

    Filter

    filter()函数用于过滤序列。和map()类似,filter()也接受一个函数和一个序列。和map()不同的是,fileter()把传入的函数依次作用于每个元素,然后根据返回值true 还是false 决定保留还是丢弃该元素。

      names = ['steven james','ooc','steven rose','steven green']

    方式一:手动实现

      new_names = []
    for name in names:
       if name.startswith('steven'):
           new_names.append(name)
    print(new_names)
    # ['steven james', 'steven rose', 'steven green']

    方式二:列表生成式

      new_names=[name for name in names if name.startswith('steven')] 
    # ['steven james', 'steven rose', 'steven green']

    方式三:filter + 匿名函数

      lam = filter(lambda name:name.startswith('steven'),names)
    print(lam)
    print(list(lam))
    # <filter object at 0x1050d6550>
    # ['steven james', 'steven rose', 'steven green']

     

  • 相关阅读:
    SHA1加密算法 java
    CMD命令名详细大全
    springMVC get请求及其请求地址写法
    webService 接口调用配置
    使用jdk操作 wsdl2java (wedservice)
    编码问题(utf-8,gbk,utf-16be)
    9 个让 JavaScript 调试更简单的 Console 命令
    让姑姑不再划拳 码农也要有原则 : SOLID via C#
    工欲善其事,必先利其器 之 VS2013全攻略(安装,技巧,快捷键,插件)!
    2000条你应知的WPF小姿势 基础篇<78-81 Dialog/Location/WPF设备无关性>
  • 原文地址:https://www.cnblogs.com/OutOfControl/p/9767173.html
Copyright © 2020-2023  润新知