• 02-高阶函数 map filter sorted


    什么是高阶函数
       满足下列条件中一个的函数即为高阶函数
          1. 函数接受一个或多个函数作用参数传入
          2. 函数返回一个函数
    
    map 函数
      map(func, *iterable)  返回一个可迭代对象,此可迭代
           对象用函数 func对可迭代对象iterable中的每一个
           元素作用参数计算后得一结果,当最短的一个可迭代对
           象不再提供数据时可迭代对象生成数据结束
      示例:
        def power2(x):
            return x ** 2
        # 生成一个可迭代对象,此可迭代对象可以生成1~9的
        # 整数的平方
        for x in map(power2, range(1, 10)):
            print(x)
        # 生成一个可迭代对象, 此可迭代对象可以生成:
          1**4, 2**3, 3**2, 4**1
          
        def mypower2(x, y):
            return x ** y
    
        for x in map(mypower2,[1,2,3,4],[4,3,2,1]):
            print(x)
        # 看懂下面程序在做什么:
        for x in map(pow, [1,2,3,4], [4,3,2,1],
                     range(5, 10)):
            print(x)
    
    练习:
      1. 求:
        1**2 + 2**2 +3**2 +...+9**2的和
      2. 求:
        1**3 + 2**3 +3**3 +...+9**3的和
      3. 求:
        1**9 + 2**8 + 3**7 + ... + 9**1的和
    
    
    filter函数:
      filter(function, iterable)   返回一个可迭代对象
            此可迭代对象将iterable提供的数据用函数function
            进行筛选,function将对iterable中的每个元素求值
            返回False将此数据丢弃,返回True则保留
      示例:
        def isodd(x):
           return x % 2 == 1
        # 打印0~10之间所有的奇数:
        for x in filter(isodd, range(11)):
            print(x)
        for x in filter(lambda x:x%2, range(11)):
            print(x)
        
        L = [x for x in filter(isodd, range(11))]
    
    
    sorted函数
      作用:
        将原可迭代对象提供的数据进行排序, 生成排序后的列表
      格式说明
        sorted(iterable, key=None, reverse=False)
        返回一个新的包含所有可迭代对象中数据的列表,新的列表
        是排序过的列表
      参数说明:
        iterable  可迭代对象
        key     函数是用来提供一个值,这个值将作用排序的依据
        reverse  标志用来设置是否降序排序(默认为升序))
      示例:
        L = [5, -2, -4, 0, 3, 1]  
        L2 = sorted(L)  # L2=[-4, -2, 0, 1, 3, 5]
        L3 = sorted(L, reverse=True)  # 从大到小排序
    
        L4 = sorted(L, key=abs)  # L4=[0, 1, -2, 3, -4, 5]
                                 # 依据 0, 1,  2, 3,  4, 5
    
        names = ['Tom', 'Jerry', 'Spike', 'Tyke']
        sorted(names)  # ['Jerry', 'Spike', 'Tom', 'Tyke']
        sorted(names, key=len)
        sorted(names, key=len, reverse=True)
    
    练习:
      names = ['Tom', 'Jerry', 'Spike', 'Tyke']
      排序的依据是:
               'moT'   'yrreJ'  'ekipS'  'ekyT'
      结果: ['Spike', 'Tyke', 'Tom', 'Jerry']
    

      

  • 相关阅读:
    基于智能学习与业务感知的工控安全监测体系建设
    深度解析工控网络流量特点
    Studio 从入门到精通 (一)
    AndroidStudio权威教程 AS添加第三方库的6种方式(Jar module so等)
    最全的资源教程-前端涉及的所有知识体系
    Android 屏幕适配(二)增强版百分比布局库(percent-support-lib)
    Android 屏幕适配(一)百分比布局库(percent-support-lib) 解析与扩展
    Android 手势识别类 ( 三 ) GestureDetector 源码浅析
    Android 手势识别类 ( 二 ) GestureDetector 源码浅析
    Android 手势识别类 ( 一 ) GestureDetector 基本介绍
  • 原文地址:https://www.cnblogs.com/taysem/p/12116241.html
Copyright © 2020-2023  润新知