问题描述
我有一个元组列表“学位”
[('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)
1楼
尝试这个 -
sorted(degree, key=lambda (k,v): v)
2楼
您可以尝试使用 ,这将返回一个新的排序列表。
我们正在传递一个可选参数key
。
在这里,我们使用的是lambda
函数。
sorted()
的结果将基于传递的函数,该函数将评估每个元素。
例如,对于第一个元素:
('WA', 2) # x
该函数将返回x[1]
。
换句话说, 2
。
其他元素也是如此。
print sorted(degree, key = lambda x : x[1])
3楼
from operator import itemgetter
sorted(degree, key=itemgetter(1))
4楼
尝试这个
def comp(x,y):
return x[1] - y[1]
degree.sort(comp)