我有一个元组列表“度”
[('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)
答案 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)