+:“int”和“tuple”的操作数类型不受支持

2024-04-25 12:08:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要完成一个任务,在那里我得到一个名单上的名字和每个名字的等级,我需要把这些按最高到最低的等级。但是,如果两个名字有相同的等级,那么就按字母顺序把这些名字分类。这就是我面临的问题。我必须保持排序功能在一行。

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'

所以这就是目前的情况,我现在要做的就是整理这个列表,然后从最高的等级到最低的等级。


Tags: lambdakeyinstdinlinethomas名字file

热门问题