排序元组列表

时间:2014-03-24 05:25:51

标签: python python-2.7 tuples

我有一个元组列表“度”

  

[('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)]

我想将元组从最低到最高(按数字排序,而不是按状态排序),所以它看起来像:

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

我尝试了这个,但它不起作用,我该如何解决?

print sorted(degree)

4 个答案:

答案 0 :(得分:3)

试试这个 -

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

答案 1 :(得分:1)

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

('WA', 2)   # x

该函数将返回x[1]。换句话说,2。与其他元素类似。

print sorted(degree, key = lambda x : x[1])

答案 2 :(得分:1)

from operator import itemgetter
sorted(degree, key=itemgetter(1))

答案 3 :(得分:0)

试试这个

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

degree.sort(comp)