【发布时间】:2014-02-16 00:55:26
【问题描述】:
我正在尝试按 int 对列表中的列表进行排序,然后按字符串。
lst = [['Bob', 22], ['Jim', 33], ['Stan', 22]]
lst.sort(key = lambda x: (x[1], -x[0]), reverse = True)
如您所见,我尝试按年龄对他们进行排序,如果年龄相同,则按姓名按降序排列。但是,这会返回错误消息TypeError: bad operand type for unary -: 'str',因为我使用负号来尝试不反转字符串,因此它将保持按升序排序
如何按年龄降序排列,然后按姓名升序排列?
它应该返回:
[['Jim', 33], ['Bob', 22], ['Stan', 22]]
【问题讨论】: