• Python复杂多重排序


    1. cmp函数是python自带的函数,用于比较两个参数哪个大哪个小

    print  cmp(2, 3)   # -1
    print  cmp(2, 1)   # 1
    print  cmp(2, 2)   # 0


    如果第一个参数比第二个小,就返回-1,两个元素相等,返回0,否则返回1

    2.所以就可以利用这个函数来自定义自己的比较规则

    def cmp_country_size(country1, country2):
        alist = ['美国', '中国', '加拿大', '俄罗斯']
    
        return cmp(alist.index(country1), alist.index(country2))
    
    
    print cmp_country_size('中国', '加拿大')

    例如这里cmp_country_size函数用于比较哪个国家的面积比较大

    3.python中的排序

    python中用于排序的函数有sorted和sort,sort是列表的方法,它们的区别是:sort在原来的列表中进行排序,sorted是新建一个列表来进行排序,

    它们的用法是一样的:

    def sort(self, cmp=None, key=None, reverse=False)

    cmp是排序的规则,key是按照列表元素中哪一个部分来排序,reverse是否反序

    items=[{'name':'kevin','age':'15','course':'english','country':'加拿大'},
           {'name':'tom','age':'15','course':'chinese','country':'中国'}]
    items.sort(cmp=lambda x,y:cmp_country_size(x['country'],y['country']) or cmp(x['age'],y['age']) or cmp(x['name'],y['name']) )
    print items

    把items中的元素,先按国家来排,然后按年龄和名称来排序

  • 相关阅读:
    Java的XML解析
    Jackson解析XML
    Eclipse配置MyBatis的xml自动提示【转】
    mui消息框alert,confirm,prompt,toast
    base64编码的作用【转】
    一个mui扩展插件mui.showLoading加载框【转】
    RabbitMQ的使用场景
    Spring集成RabbitMQ
    消息确认机制
    Java操作队列
  • 原文地址:https://www.cnblogs.com/Xjng/p/4174132.html
Copyright © 2020-2023  润新知