名前と各名前の成績のリストが与えられるタスクを完了する必要があり、これらを最高の成績から最低の成績順に並べ替える必要があります。ただし、2 つの名前の成績が同じ場合は、それらの名前をアルファベット順に並べ替えます。これが私が提示された問題です。ソート機能を 1 行に収める必要があります。
a = [('Tim Jones', 54), ('Anna Smith', 56), ('Barry Thomas', 88)]
sum(sorted(a,key=lambda x: x[1]))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'tuple'
これを解決する方法について何か考えはありますか? 私は何日もそれを解決しようとしました。
更新しました
それを解決するのを手伝ってくれてありがとう、しかし、私も解決する必要がある別のシナリオがあります.
a = [('Tim Jones', 'C'), ('Anna Smith', 'B'), ('Barry Thomas', 'A')]
sorted(a,key=lambda x: -x[1])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
TypeError: bad operand type for unary -: 'str'
これが現在の状況です。基本的に私が今しなければならないのは、リストを整理することだけです。それで、それは最高学年から最低学年へと続きます。