【发布时间】:2014-11-20 19:43:07
【问题描述】:
我想在元组中的函数中按字母顺序对成绩进行排序,例如:
sortGrades([('John Smith', 'C'), ('Adam Thomas', 'B'), ('Katie Johnson', 'A')])
还有,在数字上,像这样:
sortGrades([('John Smith', 54), ('Adam Smith', 54), ('Thomas King', 88)])
所以它会按照最高分和最高等级对元组进行排序。如果有两个得分相同的人,名字也应该按字母顺序排序。
到目前为止,我的函数如下所示:
def sortGrades(list):
return sorted(list, key=lambda x:(-x[1],x[0]))
但是,当我对等级(A,B,C)进行排序时,这似乎不起作用,它返回“TypeError:一元操作数类型错误 -:'str'”
知道如何让它同时适用于字符串和整数吗?
- 已编辑问题,需要它同时适用于字符串和整数!
【问题讨论】:
-
“如何使它适用于字符串”或“如何使它适用于字符串和整数”?
-
字符串和整数。我的错,对不起!我只需要一个函数就可以完成所有工作。
-
必须
sortGrades()在没有任何迹象的情况下运行,以指示期望哪种类型的列表? -
如果可能的话,是的。我不知道如何让它同时为两者工作,我宁愿没有两个单独的功能