我已经设置了一个任务,通过像这样的函数参数对给定的元组列表进行排序。我必须让函数只用两行代码来操作。 排序顺序是这样: 1)级 2)姓 3)用的名字如何通过数字(降序)和按字母顺序对元组的相同索引进行排序? [Python]
因此,例如,一个文档测试将是:
sortStudents([('Tim Smith', 54), ('Anna Smith', 88), ('Barry Thomas', 88)])
这是我到目前为止有:
def sortStudents(a):
return (sorted(a, key=lambda x: (-x[1], x[0].split()[1], x[0].split()[0])))
我已经完成了这些测试。然而,我无法通过的最后一个文档测试是使用按字母顺序排列的文档,而不是数字文档。而当我按降序排列数值(按索引)时,它会同时颠倒按字母排序的排序。 doctest的一个例子是:
sortStudents([('Tim Jones', 'C'), ('Anna Smith', 'B'), ('Barry Thomas', 'A')])
在此先感谢。
你确实知道等级只是一个字母吗? –
在这个任务中是的。 –
@MorganThrapp你还在误解它,你提到的帖子是关于不同索引的讨论,我说的是元组的相同索引,但是参数类型不同。 –