Python中对复杂数据结构排序(类似C中结构体数据结构)

这篇博客探讨了在Python中如何对类似C中结构体的数据结构进行排序,使用了sorted和list.sort()函数,并给出了一个涉及多条件排序的复杂例子,包括根据考生的德分、才分进行分类和总分排序的算法。
摘要由CSDN通过智能技术生成

Python中排序主要有两个函数:sorted和列表成员函数sort,两者除了调用方式有些区别外,最显著的区别是sorted会新建一个排序好的列表并返回,而sort是修改原列表并排好序。sorted的原型是:

sorted(iterable, cmp=None, key=None, reverse=False)

sort的原型是:

list.sort(cmp=None, key=None, reverse=False)

其中cmp和key都是函数引用,即可以传入函数名。这两个函数都是对list里的成员进行运算。reverse是指是否逆序。

在c中经常会出现结构体或链表之类的数据结构,而这在Python中也是可以处理的。

如数据结构是这样的:

   学号   分数1  分数2
10000007   90      78
那么可以用一个列表保存学生的信息,即

info = ['10000007', '90', '78']

如果是简单的按某一分数进行排序,如按分数2排序,则可以这样:

如果输入的数据是:

14                     #学生总数
10000001 64 90         #具体信息
10000002 90 60
10000011 85 80
10000003 85 80
10000004 80 85
10000005 82 77
10000006 83 76
10000007 90 78
10000008 75 79
10000009 59 90
10000010 88 45
10000012 80 100
10000013 90 99
10000014 66 60

代码:

#!/usr/bin/python
def getKey( x ):
    return int(x[2])

num 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值