当前位置: 代码迷 >> python >> 排序元组列表
  详细解决方案

排序元组列表

热度:25   发布时间:2023-07-16 10:31:37.0

我有一个元组列表“学位”

[('WA',2),('DE',3),('DC',2),('WI',4),('WV',5),('FL',2),( 'WY',6),('NH',3),('NJ',3),('NM',4),('TX',4),('LA',3),('NC ',4),('ND',3),('NE',6),('TN',8),('NY',5),('PA',6),('RI', 2),('NV',5),('VA',6),('CO',6),('CA',3),('AL',4),('AR',6) ,('VT',3),('IL',5),('GA',5),('IN',4),('IA',6),('MA',5),( 'AZ',4),('ID',6),('CT',3),('ME',1),('MD',5),('OK',6),('OH ',5),('UT',5),('MO',8),('MN',4),('MI',3),('KS',4),('MT', 4),('MS',4),('SC',2),('KY',7),('OR',4),('SD',6)]

我想从最低到最高(按数字而不是按州)对元组进行排序,所以lt看起来像:

[('ME', 1),....,('MO', 8)]

我试过了,但是不行,我该如何解决?

print sorted(degree)

尝试这个 -

sorted(degree, key=lambda (k,v): v)

您可以尝试使用 ,这将返回一个新的排序列表。 我们正在传递一个可选参数key 在这里,我们使用的是lambda函数。 sorted()的结果将基于传递的函数,该函数将评估每个元素。 例如,对于第一个元素:

('WA', 2)   # x

该函数将返回x[1] 换句话说, 2 其他元素也是如此。

print sorted(degree, key = lambda x : x[1])
from operator import itemgetter
sorted(degree, key=itemgetter(1))

尝试这个

def comp(x,y):
    return x[1] - y[1]

degree.sort(comp)
  相关解决方案