• Python笔记22-----高阶函数


    1、sorted(排序对象,key=):排序对象可以是类别,也可以是字符串和字典,key为自定义排序,如:【key=abs,按绝对值排序】【key=lambda x:x[1],按排序对象的第二个值排序,若为二维数组,第二维排,若为字典则按值排】

      ①sorted(排序对象,key=abs):

      数值:key=abs  【按照绝对值排序】

      字符串:默认按小写到大写排序。key=str.lower【将所有的字符串变成小写再排序】eg: sorted  (  ['a','dob','Cold',Zoo']  ,  key=str.lower  )   结果:【'a' , 'Cold' ,'dob','Zoo'】

      字典类型(二维数组):from operator import itemgetter

                 key=itemgetter(1)

                 或者

                 key=lambda x:x[1]

      ②sorted(排序对象,reverse=True) :逆序排序

    2、map(函数,迭代器):对一个迭代器进行同样的函数操作。

      如:

    list(map(str,[1,2,3,4,5]))

    结果:【‘1’,‘2’,‘3’,‘4’,‘5’】这样就可以不用用for来循环处理。

    3、reduce(函数,迭代器):对一个迭代器中的每个元素进行迭代运算,如求和、求最大最小值……

      4、map和reduce结合使用,将一个字符串'13579'转化成整数13579

    from functools import reduce
    a=reduce(lambda x,y:x*10+y,map(int,'13579'))

    5、filter(函数 f ,迭代器 l ):筛选函数作用,通过函数 f 之后返回的值若为真或有值则返回,若为假或空则不返回该值。

    def is_odd(n):
        return n % 2 == 1
    
    list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))

     6、map 和 zip 结合 可以取二维list的每一列的数。

    grid = [[0,1,0,0],
     [1,1,1,0],
     [0,1,0,0],
     [1,1,0,0]]
    
    for col in map(list, zip(*grid) ):
    
        print(col)
    
    
    #结果:[0,1,0,1]
    
    #[1,1,1,1]
    
    #[0,1,0,0]
    
    #[0,0,0,0]

    6、map比较两个列表中的数是否相等:

    #operator.ne  : ne(a,b) 表示 a != b 
    map(operator.ne , list1,list2)
    #list1和list2中对应的值两两对比

      

  • 相关阅读:
    MyBatis入门基础
    复制复杂链表
    二叉树中和为某一值的所有路径
    树的层次遍历
    Statement, PreparedStatement和CallableStatement的区别
    JSP有哪些动作?
    latex 输入矩阵
    Struts简单入门实例
    在Eclipse里面配置Struts2
    Windows使用Github
  • 原文地址:https://www.cnblogs.com/Lee-yl/p/8954416.html
Copyright © 2020-2023  润新知