首页 > 代码库 > Python复杂多重排序
Python复杂多重排序
1. cmp函数是python自带的函数,用于比较两个参数哪个大哪个小
print cmp(2, 3) # -1print cmp(2, 1) # 1print 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中的元素,先按国家来排,然后按年龄和名称来排序
Python复杂多重排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。