本文实例讲述了Python使用sort和class实现的多级排序功能。分享给大家供大家参考,具体如下:

# -*- coding:utf-8 -*-

import random

class Temp:

def __init__(self, a, b, c):

self.a = a

self.b = b

self.c = c

def __str__(self):

return ( ('[a: %d b: %d c: %d]' % (self.a, self.b, self.c)))

def cmp1(temp1, temp2):

if (temp1.a > temp2.a):

return 1;

elif(temp1.a == temp2.a):

if (temp1.b>temp2.b):

return 1;

elif(temp1.b == temp2.b):

return 0;

else:

return -1;

else:

return -1;

def cmp2(temp1):

return temp1.a

temp = []

for i in range(200):

a = random.randint(1, 100)

b = random.randint(1, 100)

c = random.randint(1, 100)

temp.append(Temp(a,b,c))

# for i in range(10):

# print(temp[i])

#

print

print

# for i in sorted(temp,cmp = cmp1):

# print(temp[i])

temp.sort(cmp1)

for i in range(200):

print(temp[i])

运行结果:

[a: 1 b: 61 c: 91]

[a: 1 b: 62 c: 4]

[a: 1 b: 66 c: 6]

[a: 1 b: 73 c: 8]

[a: 2 b: 24 c: 100]

[a: 2 b: 26 c: 26]

[a: 2 b: 52 c: 90]

[a: 4 b: 69 c: 36]

[a: 4 b: 100 c: 66]

[a: 7 b: 59 c: 10]

[a: 7 b: 97 c: 24]

[a: 8 b: 32 c: 84]

[a: 8 b: 49 c: 90]

[a: 9 b: 13 c: 22]

[a: 9 b: 29 c: 99]

[a: 10 b: 52 c: 11]

[a: 11 b: 2 c: 62]

[a: 11 b: 20 c: 56]

[a: 11 b: 38 c: 17]

[a: 11 b: 72 c: 2]

[a: 12 b: 13 c: 48]

[a: 15 b: 39 c: 24]

[a: 15 b: 64 c: 84]

[a: 16 b: 31 c: 89]

[a: 16 b: 60 c: 15]

[a: 16 b: 68 c: 33]

[a: 17 b: 44 c: 97]

[a: 17 b: 82 c: 41]

[a: 17 b: 96 c: 4]

[a: 19 b: 47 c: 22]

[a: 19 b: 97 c: 91]

[a: 20 b: 35 c: 87]

[a: 20 b: 45 c: 71]

[a: 20 b: 58 c: 45]

[a: 21 b: 5 c: 29]

[a: 21 b: 12 c: 1]

[a: 21 b: 24 c: 84]

[a: 21 b: 27 c: 41]

[a: 21 b: 34 c: 4]

[a: 21 b: 44 c: 38]

[a: 21 b: 63 c: 60]

[a: 21 b: 88 c: 60]

[a: 22 b: 15 c: 39]

[a: 23 b: 6 c: 90]

[a: 23 b: 45 c: 36]

[a: 23 b: 95 c: 92]

[a: 24 b: 44 c: 48]

[a: 24 b: 79 c: 86]

[a: 25 b: 40 c: 24]

[a: 25 b: 80 c: 46]

[a: 25 b: 100 c: 40]

[a: 26 b: 34 c: 74]

[a: 26 b: 79 c: 23]

[a: 27 b: 6 c: 51]

[a: 27 b: 8 c: 8]

[a: 27 b: 28 c: 86]

[a: 27 b: 71 c: 48]

[a: 28 b: 5 c: 9]

[a: 29 b: 11 c: 91]

[a: 29 b: 42 c: 17]

[a: 29 b: 47 c: 21]

[a: 31 b: 80 c: 86]

[a: 32 b: 18 c: 24]

[a: 32 b: 30 c: 29]

[a: 32 b: 81 c: 55]

[a: 33 b: 33 c: 10]

[a: 33 b: 36 c: 83]

[a: 34 b: 11 c: 27]

[a: 34 b: 60 c: 52]

[a: 34 b: 62 c: 45]

[a: 34 b: 72 c: 37]

[a: 35 b: 81 c: 50]

[a: 35 b: 88 c: 3]

[a: 36 b: 11 c: 64]

[a: 36 b: 57 c: 93]

[a: 36 b: 92 c: 2]

[a: 38 b: 58 c: 83]

[a: 39 b: 39 c: 66]

[a: 39 b: 47 c: 15]

[a: 40 b: 13 c: 3]

[a: 40 b: 50 c: 66]

[a: 40 b: 99 c: 71]

[a: 41 b: 14 c: 48]

[a: 42 b: 23 c: 38]

[a: 42 b: 26 c: 30]

[a: 42 b: 32 c: 60]

[a: 42 b: 33 c: 61]

[a: 43 b: 27 c: 53]

[a: 43 b: 66 c: 69]

[a: 43 b: 69 c: 81]

[a: 43 b: 71 c: 51]

[a: 44 b: 8 c: 60]

[a: 44 b: 20 c: 7]

[a: 44 b: 48 c: 51]

[a: 44 b: 59 c: 45]

[a: 45 b: 55 c: 95]

[a: 47 b: 45 c: 25]

[a: 47 b: 79 c: 16]

[a: 48 b: 10 c: 32]

[a: 48 b: 17 c: 17]

[a: 48 b: 80 c: 63]

[a: 49 b: 90 c: 32]

[a: 49 b: 93 c: 54]

[a: 50 b: 14 c: 95]

[a: 50 b: 21 c: 75]

[a: 50 b: 41 c: 24]

[a: 50 b: 54 c: 98]

[a: 50 b: 81 c: 70]

[a: 51 b: 33 c: 62]

[a: 52 b: 53 c: 87]

[a: 53 b: 68 c: 68]

[a: 53 b: 70 c: 74]

[a: 53 b: 74 c: 96]

[a: 54 b: 33 c: 16]

[a: 55 b: 80 c: 74]

[a: 55 b: 88 c: 99]

[a: 55 b: 95 c: 44]

[a: 56 b: 14 c: 81]

[a: 56 b: 70 c: 87]

[a: 57 b: 29 c: 21]

[a: 57 b: 81 c: 51]

[a: 58 b: 79 c: 11]

[a: 58 b: 80 c: 87]

[a: 60 b: 78 c: 100]

[a: 61 b: 82 c: 48]

[a: 62 b: 35 c: 64]

[a: 62 b: 65 c: 24]

[a: 62 b: 99 c: 100]

[a: 63 b: 7 c: 61]

[a: 64 b: 24 c: 86]

[a: 64 b: 41 c: 52]

[a: 64 b: 42 c: 40]

[a: 64 b: 63 c: 92]

[a: 66 b: 9 c: 51]

[a: 66 b: 68 c: 78]

[a: 66 b: 78 c: 30]

[a: 66 b: 94 c: 74]

[a: 67 b: 75 c: 41]

[a: 67 b: 78 c: 78]

[a: 68 b: 39 c: 91]

[a: 68 b: 42 c: 19]

[a: 68 b: 42 c: 63]

[a: 69 b: 15 c: 89]

[a: 69 b: 34 c: 86]

[a: 69 b: 37 c: 11]

[a: 69 b: 44 c: 87]

[a: 69 b: 95 c: 68]

[a: 70 b: 44 c: 98]

[a: 70 b: 79 c: 61]

[a: 71 b: 28 c: 95]

[a: 71 b: 81 c: 38]

[a: 72 b: 92 c: 1]

[a: 74 b: 34 c: 74]

[a: 74 b: 67 c: 72]

[a: 75 b: 4 c: 70]

[a: 76 b: 79 c: 90]

[a: 77 b: 71 c: 73]

[a: 78 b: 19 c: 28]

[a: 79 b: 5 c: 17]

[a: 79 b: 84 c: 100]

[a: 79 b: 89 c: 2]

[a: 79 b: 99 c: 33]

[a: 81 b: 17 c: 70]

[a: 81 b: 95 c: 97]

[a: 83 b: 47 c: 51]

[a: 84 b: 22 c: 68]

[a: 84 b: 45 c: 35]

[a: 84 b: 49 c: 63]

[a: 84 b: 90 c: 89]

[a: 85 b: 41 c: 78]

[a: 85 b: 60 c: 19]

[a: 85 b: 61 c: 84]

[a: 86 b: 37 c: 12]

[a: 86 b: 63 c: 17]

[a: 87 b: 5 c: 7]

[a: 87 b: 53 c: 25]

[a: 87 b: 79 c: 38]

[a: 88 b: 4 c: 90]

[a: 89 b: 8 c: 34]

[a: 89 b: 59 c: 21]

[a: 90 b: 1 c: 5]

[a: 90 b: 50 c: 87]

[a: 91 b: 93 c: 63]

[a: 92 b: 81 c: 47]

[a: 92 b: 89 c: 27]

[a: 92 b: 94 c: 51]

[a: 94 b: 37 c: 71]

[a: 95 b: 25 c: 15]

[a: 95 b: 39 c: 56]

[a: 95 b: 59 c: 39]

[a: 96 b: 9 c: 64]

[a: 96 b: 50 c: 20]

[a: 97 b: 12 c: 45]

[a: 97 b: 24 c: 95]

[a: 97 b: 36 c: 72]

[a: 97 b: 41 c: 40]

[a: 97 b: 80 c: 7]

[a: 99 b: 33 c: 23]

[a: 99 b: 56 c: 16]

[a: 100 b: 51 c: 66]

几点需要说明的:

sort接受三个默认的参数,一定要理解cmp函数的含义。我的理解:当a>b时,return 1;意思越大的值越往后排

在cmp1()函数中一定要用return a-b,而前往不要return a>b.因为在Python中,有a==b的时候的判断,感觉和c++不太一样

PS:这里再为大家推荐一款关于排序的演示工具供大家参考:

在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:http://tools.jb51.net/aideddesign/paixu_ys

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

本文标题: Python使用sort和class实现的多级排序功能示例

本文地址: http://www.cppcns.com/jiaoben/python/237264.html

python sort 多级排序_Python使用sort和class实现的多级排序功能示例相关推荐

  1. python远程同步文件_Python实现的远程文件自动打包并下载功能示例

    Python实现的远程文件自动打包并下载功能示例 发布时间:2020-08-19 23:32:33 来源:脚本之家 阅读:103 本文实例讲述了Python实现的远程文件自动打包并下载功能.分享给大家 ...

  2. python列表sort倒序输出_Python 列表sort()添加key和reverse参数操作方法|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ 本文是关于Python 列表sort()添加key和reverse参数操作方法介绍,之前python so ...

  3. python定义一个函数列表排序_Python 列表(修改、添加、删除、排序)

    Python的基本数据类型有整数,浮点数,布尔,字符串,它们是最基本的数据.在实际编程中,我们要经常组织由很多基本数据组成的集合,这些集合的不同组织方式就是:数据结构,今天讲的是数据结构中的Pytho ...

  4. python数字排序_python按照列表元素中的数字大小排序

    [Human Sorting] 常见的python排序只需要一个sort或者sorted函数即可.但是默认采用的是字典序,这会带来一个问题,如果列表中的元素是字符串+数字组合,往往无法得到我们想要的排 ...

  5. python数字大小排列_python按照列表元素中的数字大小排序

    [Human Sorting] 常见的python排序只需要一个sort或者sorted函数即可.但是默认采用的是字典序,这会带来一个问题,如果列表中的元素是字符串+数字组合,往往无法得到我们想要的排 ...

  6. python列表数据排序_Python中,如何将列表中数据排序给列表排序?

    在程序中使用字典进行数据信息統计时由于字典是无序的所以打印字典时内容也是无序的.因此为了使统计得到的结果更方便查看需要进行排序.Python中字典的排序分为按"键"排序和按&quo ...

  7. python编程单词排序_Python编程20:字典的遍历和排序

    #少儿编程# 字典的遍历 1)通过遍历key来遍历字典 所谓遍历,简单点就说就是所有的值都访问一遍.Python字典的遍历有几种方式: 遍历key有两种方式.一种如图1中的红框内的代码: 图1 for ...

  8. python实现文件管理系统_Python使用文件操作实现一个XX信息管理系统的示例

    大家好,我是第一次python学了一个学期,期末要完成一个毕业生信息管理系统大作业的小韩了,由于上次没有仔细看开发实现的要求,实现了一个简单的毕业生信息管理系统,而这次专门整理了两种使用文件进行保存数 ...

  9. 基于python的聊天软件的设计与实现_Python基于TCP实现会聊天的小机器人功能示例...

    本文实例讲述了Python基于TCP实现会聊天的小机器人功能.分享给大家供大家参考,具体如下: 一 代码 1.服务端程序 import socket words ={'how are you?':'F ...

最新文章

  1. 华为鸿蒙去哪里更新,华为鸿蒙OS正式尝鲜版名单更新,升级?还是不升级?
  2. java子类参数传递给父类_java – 为什么调用将父类作为参数的方法调用,而不是将子类作为参数获取的方法?...
  3. autojs怎么post协议_超9成人都理解错了HTTP中GET与POST的区别
  4. 【AI不惑境】残差网络的前世今生与原理
  5. [Python爬虫] 之十二:Selenium +phantomjs抓取中的url编码问题
  6. 【实践】js实现随机不重复抽取数组中元素
  7. uni-app中使用腾讯位置服务实现小程序地图选点功能
  8. VMware Workstation 8 技巧集
  9. 中国成全球第二AI医疗交易国,上半年AI制药融资数等于去年全年 | 报告
  10. FTP用户无法登陆排错详解
  11. Log Explorer 恢复误删除、更新数据
  12. SPSS统计分析学习记录
  13. android XMPP即时通讯客户端
  14. 10个办法带你提高工作效率
  15. 本体论:Gene Ontology (基因本体)
  16. 如何快速编写一个汇编软件
  17. android 支付宝登录无法返回
  18. 八字易经算法之用JAVA实现日子吉凶星
  19. 获取textarea标签中的换行符和空格
  20. 企业oa管理系统是什么

热门文章

  1. Product settype list tool - report PROD_DISPLAY_SETTYPE
  2. SAP ABAP DDICSAP ABAP DDIC table runtime object table runtime object
  3. Backbone - create model
  4. python做动画视频教程_Python零基础入门动画教程
  5. 螺旋矩阵Python解法
  6. 两数相加Python解法
  7. 西门子博图的FB块_西门子S7-300/400PLC OB-FB-FC-DB块介绍
  8. android rfid 读写sdk,Android-SDK-1.0.0-STD android手机调用RFID模块读取电子标签Demo - 下载 - 搜珍网...
  9. flash写保护原理_为什么固态会掉盘?著名的30分钟大法修复是什么原理?
  10. java inputstream字节流_Java输入输出流ByteArrayInputStream和ByteArrayOutPutStream