声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【第8次课]实验六组合数据类型(二)
2.简答题
使用上题字典数据,进行如下各种排序。
(1)仅按学号no递增排序;
(2) 对所有信息按学号no递增排序;
(3) 对所有信息按成绩mark递减排序。
运行界面如下图所示。
学号递增排序:[’2001’,'2002’,’2004’]
按学号递增对所有信息排序:
(2001’,[张平,’男’,80])
(’2002’,[’李英’,'女’,90])
('2004’,[’黄小明’,'女’,68])
按成绩递减对所有信息排序:
( 2002’,[李英,’女’,90])
('2001’,[’张平’,’勇’,80])
(’ 2004’,[’黄小明’,'女’,68])
[提示]利用key= lambda 函数对键或值中指定的元素进行排序。
dictStud = {
"2001": ["张平", "男", 80],
"2004": ["黄小明", "女", 68],
"2002": ["李英", "女", 90]
}
def printdic(dictStud):
for no in dictStud:
print(no)
print()
print("学号递增排序:")
s=sorted(dictStud,reverse=False)
print(s)
print()
print("按学号递增对所有信息排序:")
s=sorted (dictStud.items() , key=lambda kv:kv[0])#按学号递增排序
printdic(s)
print("按成绩递减对所有信息排序:")
s=sorted(dictStud.items(),key = lambda kv:kv[1][2],reverse=True)
printdic(s)