我需要编写一个函数sort_gradebook(gradebook)
,它具有下一个参数:[first_name,last_name,grade_1,grade_2,...,grade_n,final_grade]
。函数必须按以下顺序排序:
- 最终成绩
- 如果最终成绩相等-按一年级
- 如果一年级相等-等于二年级,等等
- 如果所有年级都相等-按姓氏
- 如果名字相等-按名称。
我能做的一切:
from operator import itemgetter
def sort_gradebook(*gradebook):
length = len([str(i) for i in gradebook[0]])
a = [i for i in range(length)]
for i in a:
s = sorted(gradebook,key = itemgetter(i))
return s
用于测试:
from itertools import permutations
def test_sort(inp,outp):
for i in permutations(inp):
assert sort_gradebook(list(i)) == outp
test_sort([['Alice','Smith',2,3,4],['John',5]],[['John',5],['Alice',4]
])