如何按最高编号对列表进行排序?

2024-04-29 16:41:00 发布

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

这是我的名单:

[['Alfred Jeffries', '9'], ['Peter Smalls', '10'], ['Bob Daniels', '8']]

我想按数字排序,从高到低。在

预期结果:

^{pr2}$

谢谢!在


Tags: 排序数字peterbobalfred名单pr2daniels
2条回答

这个问题已经有了一个优雅的答案,但我想用itemgetter。在

如果列表中有数字而不是strings('9','8','10') 会容易得多

 In [7]: a=[['Alfred Jeffries', 9], ['Peter Smalls', 10], ['Bob Daniels', 8]]

In [8]: sorted(a,key=itemgetter(1), reverse=True)
Out[8]: [['Peter Smalls', 10], ['Alfred Jeffries', 9], ['Bob Daniels', 8]]

我需要使用字符串,因为我需要理解列表。在

^{pr2}$

输出

 [['Peter Smalls', '10'], ['Alfred Jeffries', '9'], ['Bob Daniels', '8']]

使用key指定一个包含一个参数的函数,用于从每个列表元素中提取比较键。参数reverse是一个布尔值。如果设置为True,则对列表元素进行排序,就像每个比较都颠倒了一样。在

>>> l = [['Alfred Jeffries', '9'], ['Peter Smalls', '10'], ['Bob Daniels', '8']]
>>> sorted(l, key=lambda x: int(x[1]), reverse=True)
[['Peter Smalls', '10'], ['Alfred Jeffries', '9'], ['Bob Daniels', '8']]

相关问题 更多 >