• 函数式编程--高阶函数--sorted


    定义

    sorted函数可以list进行排序

    #sorted可以对list进行排序
    L=[3,7,-11,10,6]
    
    print(sorted(L))

    sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序。例如按绝对值大小排序:

    #接受一个abs,按照绝对值排序
    print(sorted(L,key=abs))

    以上两个输出结果为:

    [-11, 3, 6, 7, 10]
    [3, 6, 7, 10, -11]
    #对字符串进行排序,默认对ASCII码的大小进行排序
    names=['bob', 'about', 'Zoo', 'Credit']
    
    print(sorted(names))
    
    #要求忽略大小写,按字符顺序进行排序,传入一个lower函数将大写转为小写
    print(sorted(names,key=str.lower))
    
    #进行反项排序
    print(sorted(names,key=str.lower,reverse=True))

    以上三项的输出

    ['Credit', 'Zoo', 'about', 'bob']
    ['about', 'bob', 'Credit', 'Zoo']
    ['Zoo', 'Credit', 'bob', 'about']

    以下例子中key=by_sorce 将函数作用L的每一个元素,返回对应的新 L[75,92,66,88] ,然后sorted 函数对新L进行排序

    #学生成绩如下,根据姓名进行排序
    L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
    
    def by_name(t):
        return t[0]
    
    L2 = sorted(L, key=by_name)
    print(L2)
        
    #根据成绩进行排序
    
    def by_sorce(t):
        return t[1]
    
    L3=sorted(L,key=by_sorce,reverse=True)
    print(L3)

    关于python中的排序:http://www.iplaypy.com/jinjie/jj114.html

  • 相关阅读:
    bzoj2115: [Wc2011] Xor
    bzoj2844: albus就是要第一个出场
    hdu3949
    bzoj2487: Super Poker II
    bzoj3456: 城市规划
    bzoj3992: [SDOI2015]序列统计
    ubuntu 使用命令行登录oracle
    ubuntu安装docker
    linux查询硬件信息
    ubuntu oracle 环境搭建
  • 原文地址:https://www.cnblogs.com/wangxy92/p/6775218.html
Copyright © 2020-2023  润新知