Python 多级排序

class C( object ):

    def __init__( self, x1, x2, x3 ):
        self.x1 = x1
        self.x2 = x2
        self.x3 = x3

    def __cmp__( self, other ):
        if self.x1 < other.x1:
            return -1
        elif self.x1 == other.x1:
            if self.x2 < other.x2:
                return -1
            elif self.x2 == other.x2:
                if self.x3 < other.x3:
                    return -1
                elif self.x3 == other.x3:
                    return 0
                else:
                    return 1
            else:
                return 1
        else:
            return 1

    def __repr__( self ):
        return "({x1}, {x2}, {x3})".format( x1 = self.x1,
                                            x2 = self.x2,
                                            x3 = self.x3 )

import random

r = random.randint

li = []
for i in xrange( 15 ):
    li.append( C( r( 1, 10 ), r( 1, 10 ), r( 1, 10 ) ) )

for i in li:
    print i

print 

li1 = sorted( li )
for i in li1:
    print i
时间: 2024-10-22 14:07:00

Python 多级排序的相关文章

python自学笔记(七)排序与多级排序

一.sorted内置方法 a = [1,2,3,4] 从大到小(翻转) a = sorted(a,reverse = True) #生成新对象,不会原地修改,需要重新赋值 print a -->[5,4,3,2,1] 二.list sort 方法 a.sort(reverse = True) #原地修改,不需要重新赋值 a = ["323","43233","2342"] a.sort(key = int) #整型排序 print a--&

python多级比较的两种方法

Description 大家都知道在电商网站上买东西时,网站会根据我们的搜索条件给出非常多的商品.这些商品会以依据某一种排序规则进行排序,依次呈现在我们面前.现在某电商网站关于书籍的排序依据有这么几项,综合.销量.出版时间.价格.用户评分.假设综合排名的规则为:首先看价格,价格低的排名靠前,如果价格相同,则看出版时间,出版的晚的排名靠前,如果这两项都相同则看销量,销量大的靠前,如果前三项均相同,最后看用户评分,用户评分高的排名靠前. 请依据此规则写一段给各个书按综合排名的程序. Input 第一

python 多级菜单进入城市

python 多级菜单  可实现功能有:进入子菜单 返回上一级菜单 退出菜单 帮助  #/usr/bin/env python3 # -*- encoding: utf-8 -*- # Auther:yooma 2016-08-14 22:00 import sys execLaye = {1:{"北京":{1:{"东城":{1:{"建国门":{1:"建国门大厦",2:"门建国大厦"}},2:{"

C++实现多级排序

stl中sort详细说明 实现功能:期末开始4位同学的成绩,按多级排序,排序规则为:按数学从小到大,如果数学相等,则按语文从大到小排列,如果语文相等,则按英语从小到大排列,如果英语相等,则按历史从大到小排烈 1 #include "stdafx.h" 2 3 #include 4 5 #include 6 7 #include 8 9 typedef struct stu 10 11 { 12 13 char name[24]; 14 15 int math;//数学 16 17 in

&lt;转&gt;python字典排序 关于sort()、reversed()、sorted()

一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a','have','I'])) #['I', 'have', 'a', 'dream'] 2.让人糊涂的sort()与sorted() 在Python 中sorted是内建函数(BIF),而sort()是列表类型的内建函数list.sort(). sorted() sorted(iterable[,

python 字典排序 关于sort()、reversed()、sorted()

一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a','have','I'])) #['I', 'have', 'a', 'dream'] 2.让人糊涂的sort()与sorted() 在Python 中sorted是内建函数(BIF),而sort()是列表类型的内建函数list.sort(). sorted() sorted(iterable[,

python 多级字典值合并

python 多级字典值合并: #!/bin/env python import os,sys,re import cStringIO f=open('/tmp/3.txt') ''' /tmp/3.txt content: 148616  '192.168.0.127:8080'    0.157   {'200': 130000, '206': 250, '301': 90, '302': 6698, '304': 6018, '406': 5} 148616  '192.168.0.127

python sorted排序

python sorted排序 Python不仅提供了list.sort()方法来实现列表的排序,而且提供了内建sorted()函数来实现对复杂列表的排序以及按照字典的key和value进行排序. sorted函数原型 sorted(data, cmp=None, key=None, reverse=False) #data为数据 #cmp和key均为比较函数 #reverse为排序方向,True为倒序,False为正序 基本用法 对于列表,直接进行排序 >>> sorted([5, 2

python选择排序

def select_sort(list): for i in range(len(list)): position = i for j in range(i,len(list)): if list[position] > list[j]: position = j temp = list[i] list[i] = list[position] list[position] = temp list = [4,4,11,23,4,5,7,9,0,111] select_sort(list) lis